locked
Fatal: Illegal characters in path. RRS feed

  • Question

  • User-637335607 posted

    First, thank you for the tool.  It looks like it will be really great and help make migration/website transfers much easier.

    Now, I setup the tool on the source and destination servers and tested it out.  I can read from both servers, doing test dumps and syncing on a few files, so I know it is working.

    When I tried to do a test syncing of the entire server, I received the error in the title, Fatal: Illegal characters in path.

    Here is the command I tried to run:

    msdeploy -verb:sync -source:webserver60,targetName=http://*SERVER*/MSDEPLOY/ -dest:webserver60 -whatif -verboseLevel:informational > msdeploysync.log

     
    Here is the resulting log:

    Informational: Dependency Check: 'IisVersion' Level: 'Fatal' Passed: 'True' Fail Operation: 'False'
    Informational: Dependency Check: 'Iis5IsolationMode' Level: 'Fatal' Passed: 'True' Fail Operation: 'False'
    Informational: Dependency Check: 'ConfigRedirection' Level: 'Fatal' Passed: 'True' Fail Operation: 'False'
    Informational: Dependency Check: 'InUseDependency' Level: 'Warning' Passed: 'True' Fail Operation: 'False'
    Informational: Dependency Check: 'InstalledComponent' Level: 'Warning' Passed: 'True' Fail Operation: 'False'
    Informational: Dependency Check: 'DriveSpace' Level: 'Fatal' Passed: 'True' Fail Operation: 'False'
    Fatal: Illegal characters in path.
    Change count: 0
    Fatal count: 1

     
    I have no idea where the problem truely lies, though obviously I have an illegal character in a path...somewhere.

    Any help would be appreciated!
     

    Thursday, January 31, 2008 7:37 PM

All replies

  • User-151961175 posted

    Hi Ander,

    Glad you're finding the tool useful! Let's see if we can track down this issue. One thing that helps is knowing the full set of dependencies that will be checked and what is next in the list. I compared on one of my servers and the check after disk is ISAPI and CGIs. That helps us narrow down the area of the failure. But if you run the command with -debug at the end, you'll see the exception that's being triggered. Can you do that and send me the info in a private message? 

    BTW if you need to work around the problem to continue testing, you can use -disableRule to get around the dependency check but obviously you don't want to do that often because the destination server might not have all the right dependencies installed. And you might hit the issue again during the sync anyway. (It is -disableRule:Dependency*)

    Thanks,

    -faith

    Sunday, February 3, 2008 12:09 AM
  • User-637335607 posted

     Thanks for the response faith.

    Sorry for not sending this to you in a PM, but I think everyone looking at this forum in the future would benefit from all the information on this issue being posted (plus anyone that gets an error in future now knows to use -debug to see the info anyway).

    So, here is the debug info I received:

    Fatal: Illegal characters in path.
    System.ArgumentException: Illegal characters in path.
       at System.IO.Path.CheckInvalidPathChars(String path)
       at System.IO.Path.IsPathRooted(String path)
       at Microsoft.Web.Deployment.FilePathProviderFactory.CreateProvider(String path)
       at Microsoft.Web.Deployment.DeploymentManager.CreateProvider(String factoryName, String path, DeploymentObjectBaseInfo baseInfo)
       at Microsoft.Web.Deployment.DefaultDependencyRuleHandler.IsapiCgiExistenceCheck.PerformCheck(DependencyRuleData ruleData)
       at Microsoft.Web.Deployment.DependencyRuleHandler.PreSync(DeploymentSyncContext syncContext, DeploymentObject destObject, DeploymentObject sourceObject, Boolean& proceed)
       at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destObject, DeploymentObject sourceObject)
       at Microsoft.Web.Deployment.DeploymentObject.Sync(DeploymentObject sourceObject)
    Change count: 0
    Fatal count: 1


    Now, I also went ahead and did some additional testing.  I went on the source server and attempted to archive the server/websites for an offline sync.  First I tried archiving the server, and that failed.  So, given the error, I tried archiving each site individually.  This seemed to reveal the problem as given in the error for each site:

    Action: Adding metaKey (/lm/w3svc/*)
    Action: Adding child metaProperty (/lm/w3svc/*/ServerComment)
    Action: Adding child rootWebConfig (metaKey/metaProperty[@name='ServerComment']/rootWebConfig[@path='API'])
    Action: Adding child machineConfig (metaKey/metaProperty[@name='ServerComment']/machineConfig[@path='API'])
    Action: Adding child metaProperty (/lm/w3svc/*/AuthFlags)
    Action: Adding child metaProperty (/lm/w3svc/*/ConnectionTimeout)
    Action: Adding child metaProperty (/lm/w3svc/*/ServerAutoStart)
    Action: Adding child metaProperty (/lm/w3svc/*/ServerState)
    Action: Adding child metaProperty (/lm/w3svc/*/Win32Error)
    Action: Adding child metaProperty (/lm/w3svc/*/KeyType)
    Action: Adding child metaProperty (/lm/w3svc/*/LogPluginClsid)
    Action: Adding child metaProperty (/lm/w3svc/*/ServerBindings)
    Action: Adding child metaKey (/lm/w3svc/*/filters)
    Action: Adding child metaProperty (/lm/w3svc/*/filters/KeyType)
    Action: Adding child metaProperty (/lm/w3svc/*/filters/AdminACL)
    Action: Adding child metaKey (/lm/w3svc/*/root)
    Action: Adding child metaProperty (/lm/w3svc/*/root/Path)
    Fatal: Sync operation 'AddChild' failed with destination metaProperty (/lm/w3svc/*/root/Path)
    Fatal: Illegal characters in path.
    Change count: 17
    Fatal count: 2


    This error happened at the same place for every website on the sever.  So I looked in the metabase file for the root/Path for each site, and the only thing wrong with it is the fact that we store our website information on a seperate drive(D:) than the default drive(C:).  

    I tested this out by created a new website on the C drive and it archived fine, as well as synced fine remotely from the destination server.

    I may be wrong, but it looks to me to be validation on the root path and it is complaining about the path being to the D drive rather than the C drive.  If this is the case, could this be fixed in the tool considering our destination server is setup the same in regards to settings/drives?  Or perhaps helping me with the command to ignore the path validation?
     

    Monday, February 4, 2008 12:21 PM
  • User-151961175 posted

    No problem Ander, I think it's good to share as well. I'm doing some testing on our side to see if I can repro the problem. Thanks a lot for the detailed investigation on your side, really helps us out!

    I'll let you know what I find today....

    Thanks,

    -faith

    Monday, February 4, 2008 12:42 PM
  • User-151961175 posted

    One of our testers not able to repro based on having a site with content on a different drive than the system drive (C:\). So it seems it might be something more specific. Can you give me an example of your path? Are there any non-alphanumeric characters in it like an underscore or comma?

    Monday, February 4, 2008 4:05 PM
  • User-637335607 posted

    Hmm, no strange characters in any of the paths.  They all look like this:

    D:\websites\beta\site

    D:\websites\live\site

    No commas, underscores, punctuation or anything.  And here I was hoping it was a simple fix related to the path, ;P


     

    Monday, February 4, 2008 4:38 PM
  • User-1653247517 posted

    Hi Ander,

    Can you pls check paths of CGIs/ISAPIs installed on the machine? As can be seen in the stack trace, invalid file path was encountered during IsapiCgiExistenceCheck. You can use the following command to dump WebSvcExtRestrictionList.

    adsutil.vbs get w3svc/websvcextrestrictionlist

    Thanks,
    Kanwal

    Monday, February 4, 2008 5:00 PM
  • User-637335607 posted

    I ran the script and here are the results (edited with equivalent text):

    Microsoft (R) Windows Script Host Version 5.6
    Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

    websvcextrestrictionlist        : (LIST)  (27 Items)
      "0,C:\Perl\bin\perlis.dll,1,,Perl ISAPI Extension"
      "1,C:\WINDOWS\system32\inetsrv\httpodbc.dll,0,HTTPODBC,Internet Data Connector
    "
      "1,C:\Perl\bin\perl.exe "%s" %s,1,,Perl CGI Extension"
      "0,C:\Perl\bin\PerlEx30.dll,1,,PerlEx ISAPI Extension"
      "1,D:\websites\live\site1\Filter\CustomISAPI1.dll,1,,Custom ISAPI"
      "1,C:\WINDOWS\system32\inetsrv\ssinc.dll,0,SSINC,Server Side Includes"
      "1,C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\50\isa
    pi\_vti_adm\admin.dll,0,FPSE2002,FrontPage Server Extensions 2002"
      "1,D:\Program Files\Exchsrvr\exchweb\bin\exwform.dll,0,MSEXCHANGE,Microsoft Ex
    change Server"
      "1,C:\WINDOWS\system32\inetsrv\asp.dll,0,ASP,Active Server Pages"
      "1,D:\Program Files\Exchsrvr\exchweb\bin\spell\owaspell.dll,0,MSEXCHANGE,Micro
    soft Exchange Server"
      "1,C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\50\isa
    pi\shtml.dll,0,FPSE2002,FrontPage Server Extensions 2002"
      "1,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,0,ASP.NET v2
    .0.50727,ASP.NET v2.0.50727"
      "1,D:\Program Files\Exchsrvr\bin\exprox.dll,0,MSEXCHANGE,Microsoft Exchange Se
    rver"
      "1,C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\50\isa
    pi\_vti_adm\fpadmdll.dll,0,FPSE2002,FrontPage Server Extensions 2002"
      "0,D:\websites\beta\site2\Filter\CustomISAPI2.dll,1,,Custom ISAPI"
      "1,D:\Program Files\Exchsrvr\bin\davex.dll,0,MSEXCHANGE,Microsoft Exchange Ser
    ver"
      "0,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,0,ASP.NET v1.
    1.4322,ASP.NET v1.1.4322"
      "1,D:\websites\beta\site3\Filter\CustomISAPI3.dll,1,,Custom ISAPI"
      "1,C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\50\isa
    pi\_vti_aut\author.dll,0,FPSE2002,FrontPage Server Extensions 2002"
      "1,D:\Program Files\Exchsrvr\exchweb\bin\auth\owaauth.dll,0,MSEXCHANGE,Microso
    ft Exchange Server"
      "1,D:\Program Files\Exchsrvr\bin\MasSync.dll,0,MSEXCHANGE,Microsoft Exchange S
    erver"
      "0,*.exe"
      "1,C:\WINDOWS\system32\inetsrv\httpext.dll,0,WEBDAV,WebDAV"
      "0,*.dll"
      "1,D:\websites\beta\site4\Filter\CustomISAPI4.dll,1,,Custom ISAPI"
      "1,C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\50\isa
    pi\fpcount.exe,0,FPSE2002,FrontPage Server Extensions 2002"
      "1,C:\Program Files\Common Files\microsoft shared\web server extensions\50\isa
    pi\owssvr.dll,0,FPSE,FrontPage Server Extensions"
     

    We have Exchange OWA and use a custom ISAPI for login on our websites.

    However, I don't believe these filters are the issue due to the fact that I can make this tool work.  On our source server, I can create a brand new website, create a simple HTML file, and point the website with default IIS 6 settings to the C drive.  The website can then be archived and synced remotely to the destination server.  I then create a brand new website with the same simple HTML file and default settings, with the only difference being that the files are located on the D drive.  This causes the tool to fail in both archiving and syncing remotely. 

    Monday, February 4, 2008 6:28 PM
  • User-1653247517 posted

    Ander,

    I am not sure why you are seeing different behavior when site is rooted on C:\ or D:\ but following entry in WebSvcExtRestrictionList is a problem.

    "1,C:\Perl\bin\per.exe "%s" %s,1,,Perl CGI Extension"

    When I tried the following code on my machine, I get the same error you are getting.

    Console.WriteLine(Path.IsPathRooted("C:\\Perl\\bin\\perl.exe \"%s\" %s"));

    Is it possible for you to remove (or change the entry to not have \") and try again?

    Thanks.
    Kanwal

    Monday, February 4, 2008 8:29 PM
  • User-637335607 posted

    I will work on removing Perl from our server if possible, but the problem has to lay somewhere else.  Looking at both my test sites, pointing to C and D drives, they both have the Perl Extension Mappings listed with the same "1,C:\Perl\bin\per.exe "%s" %s,1,,Perl CGI Extension" listing.  I tried removing the Perl Extension Mapping from the D drive site and it still errors out with the same error when attempting to archive:

    Fatal: Sync operation 'AddChild' failed with destination metaProperty (/lm/w3svc/*/root/Path)
    Fatal: Illegal characters in path.
    Change count: 16
    Fatal count: 2

    And the -debug command doesn't reveal anything in this archiving case:

    msdeploy -verb:sync -source:metakey=lm\w3svc\* -dest:archivedir="c:\Program Files\Microsoft Web Deploy\Test\" -whatif -verboseLevel:Informational -debug > someLog3.log

    Right now, since the situation cannot be replicated elsewhere, and I have a working website on the C drive, but not a working identical website on the D drive, that perhaps I have a messed up version of the tool?  Perhaps the one I am using has some code that isn't allowing the D drive to be used or something? 

    Tuesday, February 5, 2008 12:11 PM
  • User-637335607 posted

    Update on the situation...

    I was able to put this tool on another dev server and try out an offline archive of IIS.  I ran the command to archive 'webserver60' and it ran successfully.  This server was setup mostly the same except without OWA and Frontpage Server Extensions (dunno why this is installed on our other server, but with the new server we are transferring to it will not be installed).  I ran the adsutil.vbs command again on this new server and here are the results:

    Microsoft (R) Windows Script Host Version 5.6
    Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

    websvcextrestrictionlist        : (LIST)  (13 Items)
      "0,C:\Perl\bin\perlis.dll,1,,Perl ISAPI Extension"
      "1,C:\Perl\bin\perl.exe "%s" %s,1,,Perl CGI Extension"
      "0,C:\Perl\bin\PerlEx30.dll,1,,PerlEx ISAPI Extension"
      "0,C:\WINDOWS\system32\inetsrv\httpodbc.dll,0,HTTPODBC,Internet Data Connector"
      "0,C:\WINDOWS\system32\inetsrv\ssinc.dll,0,SSINC,Server Side Includes"
      "1,C:\WINDOWS\system32\inetsrv\asp.dll,0,ASP,Active Server Pages"
      "1,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,0,ASP.NET v2.0.50727,ASP.NET v2.0.50727"
      "1,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,0,ASP.NET v1.1.4322,ASP.NET v1.1.4322"
      "0,D:\websites\site1\CustomISAPI.dll,1,,Custom ISAPI"
      "0,C:\WINDOWS\system32\inetsrv\httpext.dll,0,WEBDAV,WebDAV"
      "0,*.exe"
      "0,*.dll"
      "1,C:\Program Files\Easy Software Products\HTMLDOC\htmldoc.exe,1,,HTMLDoc"


    This server had Perl installed and it was archived just fine with that same "%s" line in the CGI/ISAPI section.  So I was willing to try uninstalling Perl, though it seemed like an unlikely candidate for the issue.

    So, it now seemed to be an issue with the server we are trying to transfer.  So, I wanted to try testing again and recreated the default websites on the C and D drives.  Now neither default website will work with the tool...WHAT?!  I just tested yesterday and was able to successfully archive a default website created with files on the C drive, yet today it fails.  So now I'm thinking something is really messed up with our server, some setting messed up somewhere.

    When dealing with Windows and something is messing up I figured restart.  With such erratic behavior, why not try restarting and see if the issue remains.  So we restarted the server and tried the tool again and SUCCESS...or so I thought.  I can now archive each website using the tool without any issues.  However, I cannot sync the archives on the new server, it throws the same illegal character error.  The remote sync also gives the same error.

    We are approaching the deadline for moving over to the new server, so at this point I'm going to just start moving the websites over manually.  I don't know how long afterwards we will have our current server available before it is wiped and put to a new use, but until then I am willing to run some more tests with this tool while I can.  I would love to make this tool better because it would make things so much easier in the future.

    Wednesday, February 6, 2008 3:19 PM
  • User-151961175 posted

    Hi Ander,

    Totally appreciate your helping us with this, we'd love to get to the bottom of it and make the tool better too. Could you try a sync to archive and then from archive, both times specifying to skip the dependency checks? You can do that by running with -disableRule:Dependency* - because the dependency checks run all the time, this could be causing the issue.

    If that doesn't resolve the sync from archive, would you be willing to share a copy of a failing archive with us (we don't need the content, just the .xml files from the root of the archive folder).

    Let me know and I can give you an email address to send them to.

    Thanks!

    -faith

    Saturday, February 9, 2008 12:27 AM
  • User-637335607 posted

     Please send me/list the email address, I have the archive xml's for one of the websites I have tried to sync.

     Using the -disableRule:Dependency looks to have allowed the syncing from archive.  With the archive I will be sending you, along with an archive from a different server and site, disabling the dependency rule allowed both cases to sync according to the logs (I only did a -whatif, not actually syncing the sites).  Without the disable rule, they both show the Illegal Character in Path error.

    Also, I was wondering, could this Illegal Character in Path error display the file and/or line it is failing on?  Might help in the future.

    Monday, February 11, 2008 3:58 PM
  • User653228039 posted

    I am seeing the same issues.  I have included my dumps for all the questions you asked above to see if this will help in troubleshooting the issue. 

    Here is the dump from the adsutil.vbs get w3svc/websvcextrestrictionlist:

    websvcextrestrictionlist        : (LIST)  (14 Items)
      "1,C:\PHP\php4ts.dll,1,,PHPISAPI"
      "1,C:\WINDOWS\system32\inetsrv\gzip.dll,1,,IIS_COMPRESSION"
      "0,C:\WINDOWS\system32\inetsrv\httpodbc.dll,0,HTTPODBC,Internet Data Connector
    "
      "1,C:\PHP\php.exe,1,,PHP"
      "0,C:\WINDOWS\system32\inetsrv\ssinc.dll,0,SSINC,Server Side Includes"
      "1,C:\PHP\php4isapi.dll,1,,PHPISAPI"
      "1,C:\WINDOWS\system32\inetsrv\asp.dll,0,ASP,Active Server Pages"
      "1,C:\WINDOWS\system32\bitssrv.dll,0,BITSEXTS,BITS Server Extensions"
      "0,C:\WINDOWS\system32\inetsrv\httpext.dll,0,WEBDAV,WebDAV"
      "0,*.exe"
      "0,*.dll"
      "1,C:\WINDOWS\php4ts.dll,1,,PHPISAPI"
      "0,C:\Perl\bin\perl.exe "%s" %s,1,,Perl CGI Extension"
      "1,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,0,ASP.NET v2
    .0.50727,ASP.NET v2.0.50727"

     Here is the log from the following command: msdeploy -verb:sync -source:metakey=lm\w3svc\ -dest:archivedir="d:\inetpub2\"  -verboseLevel:Informational -debug > archive.log

     Action: Adding metaKey (/lm/w3svc/)
    Action: Adding child metaProperty (/lm/w3svc//AccessFlags)
    Action: Adding child metaProperty (/lm/w3svc//AllowKeepAlive)
    Action: Adding child metaProperty (/lm/w3svc//AppAllowClientDebug)
    Action: Adding child metaProperty (/lm/w3svc//AppAllowDebugging)
    Action: Adding child metaProperty (/lm/w3svc//AspAllowOutOfProcComponents)
    Action: Adding child metaProperty (/lm/w3svc//AspAllowSessionState)
    Action: Adding child metaProperty (/lm/w3svc//AspAppServiceFlags)
    Action: Adding child metaProperty (/lm/w3svc//AspBufferingLimit)
    Action: Adding child metaProperty (/lm/w3svc//AspBufferingOn)
    Action: Adding child metaProperty (/lm/w3svc//AspCalcLineNumber)
    Action: Adding child metaProperty (/lm/w3svc//AspCodepage)
    Action: Adding child metaProperty (/lm/w3svc//AspEnableApplicationRestart)
    Action: Adding child metaProperty (/lm/w3svc//AspEnableAspHtmlFallback)
    Action: Adding child metaProperty (/lm/w3svc//AspEnableChunkedEncoding)
    Action: Adding child metaProperty (/lm/w3svc//AspEnableParentPaths)
    Action: Adding child metaProperty (/lm/w3svc//AspEnableTypelibCache)
    Action: Adding child metaProperty (/lm/w3svc//AspErrorsToNTLog)
    Action: Adding child metaProperty (/lm/w3svc//AspExceptionCatchEnable)
    Action: Adding child metaProperty (/lm/w3svc//AspExecuteInMTA)
    Action: Adding child metaProperty (/lm/w3svc//AspKeepSessionIDSecure)
    Action: Adding child metaProperty (/lm/w3svc//AspLCID)
    Action: Adding child metaProperty (/lm/w3svc//AspLogErrorRequests)
    Action: Adding child metaProperty (/lm/w3svc//AspMaxDiskTemplateCacheFiles)
    Action: Adding child metaProperty (/lm/w3svc//AspMaxRequestEntityAllowed)
    Action: Adding child metaProperty (/lm/w3svc//AspProcessorThreadMax)
    Action: Adding child metaProperty (/lm/w3svc//AspQueueConnectionTestTime)
    Action: Adding child metaProperty (/lm/w3svc//AspQueueTimeout)
    Action: Adding child metaProperty (/lm/w3svc//AspRequestQueueMax)
    Action: Adding child metaProperty (/lm/w3svc//AspRunOnEndAnonymously)
    Action: Adding child metaProperty (/lm/w3svc//AspScriptEngineCacheMax)
    Action: Adding child metaProperty (/lm/w3svc//AspScriptErrorSentToBrowser)
    Action: Adding child metaProperty (/lm/w3svc//AspScriptFileCacheSize)
    Action: Adding child metaProperty (/lm/w3svc//AspScriptTimeout)
    Action: Adding child metaProperty (/lm/w3svc//AspSessionMax)
    Action: Adding child metaProperty (/lm/w3svc//AspSessionTimeout)
    Action: Adding child metaProperty (/lm/w3svc//AspTrackThreadingModel)
    Action: Adding child metaProperty (/lm/w3svc//AuthFlags)
    Action: Adding child metaProperty (/lm/w3svc//130010)
    Action: Adding child metaProperty (/lm/w3svc//130008)
    Action: Adding child metaProperty (/lm/w3svc//130004)
    Action: Adding child metaProperty (/lm/w3svc//130003)
    Action: Adding child metaProperty (/lm/w3svc//CacheISAPI)
    Action: Adding child metaProperty (/lm/w3svc//CentralBinaryLoggingEnabled)
    Action: Adding child metaProperty (/lm/w3svc//CGITimeout)
    Action: Adding child metaProperty (/lm/w3svc//ConnectionTimeout)
    Action: Adding child metaProperty (/lm/w3svc//ContentIndexed)
    Action: Adding child metaProperty (/lm/w3svc//DirBrowseFlags)
    Action: Adding child metaProperty (/lm/w3svc//DisableSocketPooling)
    Action: Adding child metaProperty (/lm/w3svc//DownlevelAdminInstance)
    Action: Adding child metaProperty (/lm/w3svc//IIs5IsolationModeEnabled)
    Action: Adding child metaProperty (/lm/w3svc//LogExtFileFlags)
    Action: Adding child metaProperty (/lm/w3svc//LogFileLocaltimeRollover)
    Action: Adding child metaProperty (/lm/w3svc//LogFilePeriod)
    Action: Adding child metaProperty (/lm/w3svc//LogFileTruncateSize)
    Action: Adding child metaProperty (/lm/w3svc//LogInUTF8)
    Action: Adding child metaProperty (/lm/w3svc//LogType)
    Action: Adding child metaProperty (/lm/w3svc//MaxConnections)
    Action: Adding child metaProperty (/lm/w3svc//MaxGlobalBandwidth)
    Action: Adding child metaProperty (/lm/w3svc//MD_ETAG_CHANGENUMBER)
    Action: Adding child metaProperty (/lm/w3svc//6269)
    Action: Adding child metaProperty (/lm/w3svc//MinFileBytesPerSec)
    Action: Adding child metaProperty (/lm/w3svc//PasswordChangeFlags)
    Action: Adding child metaProperty (/lm/w3svc//2166)
    Action: Adding child metaProperty (/lm/w3svc//9202)
    Action: Adding child metaProperty (/lm/w3svc//AnonymousUserName)
    Action: Adding child metaProperty (/lm/w3svc//AnonymousUserPass)
    Action: Adding child metaProperty (/lm/w3svc//AppPoolId)
    Action: Adding child metaProperty (/lm/w3svc//AspScriptErrorMessage)
    Action: Adding child metaProperty (/lm/w3svc//AspScriptLanguage)
    Action: Adding child metaProperty (/lm/w3svc//AuthChangeURL)
    Action: Adding child metaProperty (/lm/w3svc//AuthExpiredUnsecureURL)
    Action: Adding child metaProperty (/lm/w3svc//AuthExpiredURL)
    Action: Adding child metaProperty (/lm/w3svc//AuthNotifyPwdExpUnsecureURL)
    Action: Adding child metaProperty (/lm/w3svc//AuthNotifyPwdExpURL)
    Action: Adding child metaProperty (/lm/w3svc//130007)
    Action: Adding child metaProperty (/lm/w3svc//130002)
    Action: Adding child metaProperty (/lm/w3svc//130005)
    Action: Adding child metaProperty (/lm/w3svc//130001)
    Action: Adding child metaProperty (/lm/w3svc//DefaultDoc)
    Action: Adding child metaProperty (/lm/w3svc//KeyType)
    Action: Adding child metaProperty (/lm/w3svc//LogOdbcDataSource)
    Action: Adding child metaProperty (/lm/w3svc//LogOdbcPassword)
    Action: Adding child metaProperty (/lm/w3svc//LogOdbcTableName)
    Action: Adding child metaProperty (/lm/w3svc//LogOdbcUserName)
    Action: Adding child metaProperty (/lm/w3svc//LogPluginClsid)
    Action: Adding child metaProperty (/lm/w3svc//UNCPassword)
    Action: Adding child metaProperty (/lm/w3svc//WAMUserName)
    Action: Adding child metaProperty (/lm/w3svc//WAMUserPass)
    Action: Adding child metaProperty (/lm/w3svc//AspDiskTemplateCacheDirectory)
    Action: Adding child metaProperty (/lm/w3svc//LogFileDirectory)
    Action: Adding child metaProperty (/lm/w3svc//ApplicationDependencies)
    Action: Adding child metaProperty (/lm/w3svc//HttpCustomHeaders)
    Action: Adding child metaProperty (/lm/w3svc//HttpErrors)
    Action: Adding child metaProperty (/lm/w3svc//InProcessIsapiApps)
    Action: Adding child metaProperty (/lm/w3svc//ScriptMaps)
    Action: Adding child metaProperty (/lm/w3svc//WebSvcExtRestrictionList)
    Fatal: Illegal characters in path.
    Change count: 97
    Fatal count: 1

     

    Here is the log from the following command: msdeploy -verb:sync -source:webserver60,targetName=http://computername/MSDEPLOY/ -dest:webserver60 -debug -verboselevel:informational >msdeploysync.log

    Informational: Dependency Check: 'IisVersion' Level: 'Fatal' Passed: 'True' Fail Operation: 'False'
    Informational: Dependency Check: 'Iis5IsolationMode' Level: 'Fatal' Passed: 'True' Fail Operation: 'False'
    Informational: Dependency Check: 'ConfigRedirection' Level: 'Fatal' Passed: 'True' Fail Operation: 'False'
    Informational: Dependency Check: 'InUseDependency' Level: 'Warning' Passed: 'True' Fail Operation: 'False'
    Informational: Dependency Check: 'InstalledComponent' Level: 'Warning' Passed: 'True' Fail Operation: 'False'
    Informational: Dependency Check: 'DriveSpace' Level: 'Fatal' Passed: 'True' Fail Operation: 'False'
    Fatal: Illegal characters in path.
    System.ArgumentException: Illegal characters in path.
       at System.IO.Path.CheckInvalidPathChars(String path)
       at System.IO.Path.IsPathRooted(String path)
       at Microsoft.Web.Deployment.FilePathProviderFactory.CreateProvider(String path)
       at Microsoft.Web.Deployment.DeploymentManager.CreateProvider(String factoryName, String path, DeploymentObjectBaseInfo baseInfo)
       at Microsoft.Web.Deployment.DefaultDependencyRuleHandler.IsapiCgiExistenceCheck.PerformCheck(DependencyRuleData ruleData)
       at Microsoft.Web.Deployment.DependencyRuleHandler.PreSync(DeploymentSyncContext syncContext, DeploymentObject destObject, DeploymentObject sourceObject, Boolean& proceed)
       at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destObject, DeploymentObject sourceObject)
       at Microsoft.Web.Deployment.DeploymentObject.Sync(DeploymentObject sourceObject)
    Change count: 0
    Fatal count: 1

     

    Thursday, February 14, 2008 3:14 PM
  • User-151961175 posted

    Hi Eagle1, thanks for this post, very helpful. Looks like you both have the Perl scriptmap - "0,C:\Perl\bin\perl.exe "%s" %s,1,,Perl CGI Extension" - we're doing some verification on this and will get back to you tomorrow.

    For now, disabling the dependency rules will get you around this issue.

    Thanks again for this feedback!

    -faith

     

    Friday, February 15, 2008 1:36 AM
  • User-1918935842 posted

    My logs:

    Informational: Dependency Check: 'IisVersion' Level: 'Fatal' Passed: 'True' Fail Operation: 'False'
    Informational: Dependency Check: 'Iis5IsolationMode' Level: 'Fatal' Passed: 'True' Fail Operation: 'False'
    Informational: Dependency Check: 'ConfigRedirection' Level: 'Fatal' Passed: 'True' Fail Operation: 'False'
    Warning: Front Page Server Extensions is detected in the source data but the msdeploy tool does not support configuring it on the destination machine.
    Warning: Dependency Check: 'InUseDependency' Level: 'Warning' Passed: 'False' Fail Operation: 'False'
    Informational: Dependency Check: 'InstalledComponent' Level: 'Warning' Passed: 'True' Fail Operation: 'False'
    Informational: Dependency Check: 'DriveSpace' Level: 'Fatal' Passed: 'True' Fail Operation: 'False'
    Fatal: Illegal characters in path.
    System.ArgumentException: Illegal characters in path.
       at System.IO.Path.CheckInvalidPathChars(String path)
       at System.IO.Path.IsPathRooted(String path)
       at Microsoft.Web.Deployment.FilePathProviderFactory.CreateProvider(String path)
       at Microsoft.Web.Deployment.DeploymentManager.CreateProvider(String factoryName, String path, DeploymentObjectBaseInfo baseInfo)
       at Microsoft.Web.Deployment.DeploymentObject.CreateObject(String factoryName, String path)
       at Microsoft.Web.Deployment.DefaultDependencyRuleHandler.IsapiCgiExistenceCheck.PerformCheck(DependencyRuleData ruleData)
       at Microsoft.Web.Deployment.DependencyRuleHandler.PreSync(DeploymentSyncContext syncContext, DeploymentObject destObject, DeploymentObject sourceObject, Boolean& proceed)
       at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destObject, DeploymentObject sourceObject)
       at Microsoft.Web.Deployment.DeploymentObject.Sync(DeploymentObject sourceObject)
    Change count: 0
    Fatal count: 1
    Warning count: 2

    Dependency list from IIS6:

    Microsoft (R) Windows Script Host Version 5.6
    Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

    websvcextrestrictionlist        : (LIST)  (21 Items)
      "1,C:\Serwer\Php\sapi\php4isapi.dll,1,,PHP 4.x"
      "0,C:\WINDOWS\system32\inetsrv\httpodbc.dll,0,HTTPODBC,Internet Data Connector"
      "0,C:\WINDOWS\system32\inetsrv\ssinc.dll,0,SSINC,Server Side Includes"
      "1,C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\50\isapi\_vti_adm\admin.dll,0,FPSE2002,FrontPage Server Extensions 2002"
      "1,C:\WINDOWS\system32\inetsrv\asp.dll,0,ASP,Active Server Pages"
      "1,C:\Serwer\Perl\bin\PerlEx30.dll,1,,PerlEx ISAPI Extension"
      "1,C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\50\isapi\shtml.dll,0,FPSE2002,FrontPage Server Extensions 2002"
      "1,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,0,ASP.NET v2.0.50727,ASP.NET v2.0.50727"
      "1,C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\50\isapi\_vti_adm\fpadmdll.dll,0,FPSE2002,FrontPage Server Extensions 2002"
      "1,C:\Serwer\Php5\php5isapi.dll,1,,PHP 5.x"
      "1,C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll,0,ASP.NET v1.1.4322,ASP.NET v1.1.4322"
      "1,C:\WINDOWS\system32\inetsrv\fcgiext.dll,1,FASTCGI,FastCGI Handler"
      "1,C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\50\isapi\_vti_aut\author.dll,0,FPSE2002,FrontPage Server Extensions 2002"
      "1,*.exe"
      "0,C:\WINDOWS\system32\inetsrv\httpext.dll,0,WEBDAV,WebDAV"
      "1,*.dll"
      "1,C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\50\isapi\fpcount.exe,0,FPSE2002,FrontPage Server Extensions 2002"
      "1,C:\Serwer\Perl\bin\perlis.dll,1,,Perl ISAPI Extension"
      "1,C:\Serwer\Perl\bin\perl.exe "%s" %s,1,,Perl CGI Extension"
      "1,C:\Serwer\Micronovae\Mod-Rewrite\Modules\v3.1.2\imodrewp.dll,0,RPROXY,IIS Mod-Rewrite Proxy Extension"
      "1,C:\Serwer\Micronovae\Mod-Rewrite\Modules\v3.1.2\imodrewi.dll,0,WCIMRW,IIS Mod-Rewrite Extension"

    If You want I can send You my XML file.

    When I run msdeploy with -disablerole:Dependency I get:

    Informational: Dependency Check: 'Migrate6to7' Level: 'Fatal' Passed: 'True' Fail Operation: 'False'
    Fatal: Source (webServer60) and destination (webServer) are not compatible for given operation.
    Microsoft.Web.Deployment.DeploymentException: Source (webServer60) and destination (webServer) are not compatible for given operation
       at Microsoft.Web.Deployment.DeploymentSyncContext.Sync(DeploymentObject destObject, DeploymentObject sourceObject)
       at Microsoft.Web.Deployment.DeploymentSyncContext.ProcessSync(DeploymentObject destObject, DeploymentObject sourceObject)
       at Microsoft.Web.Deployment.DeploymentObject.Sync(DeploymentObject sourceObject)
    Change count: 0
    Fatal count: 1

     

    Friday, February 15, 2008 8:17 AM
  • User-1482085210 posted

    Ok bug has been found.  We don't support the quotes in CGI strings correctly.  And while we aren't displaying these as CGI dependencies we are trying to look on the destination box for those paths to make sure the CGIs are installed.  We are changing to correctly identify them as CGIs and to just validate that they are enabled in the web svc restriction list on the destination as our way of telling if the CGI has been installed on the destination box.  Does that seem like a reasonable check for installation to you all?

     The only two work arounds for the bug for now are:

    1)  Remove the dependency check rule from the config file.

    2)  Remove the "%s" %s from both the script map and web svc restriction list entries prior to migration (and put them back after)

     Thanks

    Emily 

    Friday, February 15, 2008 10:20 PM
  • User-637335607 posted

    Thank you for this feedback, removing the dependency check rule has seemed to work for my case.  Though you have been pointing me towards the CGI strings, my results seemed to point elsewhere.  The fact that the tool would work and then not work on a site the next day didn't help things, though I blame our server (thus why we are trying to migrate to a new one, =P ).

    Some questions though,

    • What are some potential problems with removing the dependency check?
    •  Would it be possible to have the 'Ilegal Characters in Path' error display which path/line/file it is complaining about?

    Wednesday, February 20, 2008 11:41 AM
  • User-1482085210 posted

    Unfortunately removing the dependency check rule means that you will not get any dependency checks to process so you won't be warned about anything, like for instance if your new server doesn't have enough disk space for the content you are moving, or if you are using an isapi that is not installed on the new box.  In the next release you will have greater control of individual checks but for now this is the only work around.

    Wednesday, February 20, 2008 5:20 PM
  • User-1485823485 posted

     This may be unrelated, but I was getting an "Illegal characters in path" error when archiving sites to a zip file, and the error turned out to be quotes in the values of the tmp and/or temp environment variables.  Fixing those made the issue go away.

     

    on a related note:

    For those trying to package and running out of room even when the destination of the package file has plenty of room, try changing your temp/tmp environment variable to point at temp directorie(s) on a volume with plenty of room.

    Friday, December 10, 2010 12:32 PM