Side-by-side - yeah right … More BTS 2004 / Visual Studio 2005 compatibility problems
I finally returned to that box with BTS 2004 and Whidbey Beta 1 I mentioned earlier.
I wanted to do some work on another project -one that didn't interact with RPC encoded web
services. This time I ran into another problem. I kept getting a COM error STG_E_FILENOTFOUND whenever I ran the Web Service Deployment Wizard.
I ran FileMon to find out what file caused the error and noticed that the wizard was loading all sorts of Visual Studio 2005 libraries. The wizard is driving Visual Studio through its automation interfaces and Visual Studio 2003 and 2005 use the same ProgIDs. I smell the scent of the days without side-by-side. So I uninstalled my precious .NET 2.0 Beta 1 and SQL 2005 Beta 2 from that box.
The good news is:
1) calls to RPC encoded web services no longer hang waiting for the response.
2) The COM error running the Web Service Deploying wizard is gone, too.
The bad news is:
Now it get a different exception running the wizard right when if is supposed to complete:
I am getting:
Failed to create project "http://localhost/Process_Proxy".
[System.IO.FileNotFoundException] The system cannot find the file specified.
[System.IO.FileNotFoundException] The system cannot find the file specified.
or
Failed to create project "http://localhost/Process_Proxy".
[System.IO.FileNotFoundException] The item 'Service1.asmx' does not exist in the project directory. It may have been moved, renamed or deleted.
[System.IO.FileNotFoundException] The item 'Service1.asmx' does not exist in the project directory. It may have been moved, renamed or deleted.
In both cases, I do see the new virtual directory in IIS with the following files in it:
Process.csproj
Process.csproj.webinfo
Service1.asmx
When I open Process.csproj in Visual Studio, I don't get an error, but the project is empty, i.e. Service1.asmx is not part of the project.
I ran repair for Visual Studio 2003 and BizTalk and re-installed SQL Server (because uninstalling SQL 2005 corrupted SQLDMO -- yes … I get it, COM doesn't do side-by-side well), but I can't get id of the error.
I enabled tracing in the BTSWebSvcWiz.exe.config file by setting the trace switch:
<system.diagnostics>
<switches>
<!-- TraceLevel 0=Off, 1=Error, 2=Warning, 3=Info, 4=Verbose -->
<add name="ApplicationTraceSwitch" value="4" />
</switches>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="Trace"
type="System.Diagnostics.TextWriterTraceListener, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
initializeData="BTSWebSvcWiz.trace.log" />
</listeners>
</trace>
</system.diagnostics>
<switches>
<!-- TraceLevel 0=Off, 1=Error, 2=Warning, 3=Info, 4=Verbose -->
<add name="ApplicationTraceSwitch" value="4" />
</switches>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="Trace"
type="System.Diagnostics.TextWriterTraceListener, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
initializeData="BTSWebSvcWiz.trace.log" />
</listeners>
</trace>
</system.diagnostics>
But unfortunately, the generated log file doesn't contain any more information than the UI of the wizard.
I looked through the IIS logs and found that last file the wizard requests is get_aspx_ver.aspx and IIS returns a file not found 404 error:
20:07:09 127.0.0.1 GET /Process_Proxy/get_aspx_ver.aspx 404
20:07:09 127.0.0.1 GET /Process_Proxy/vs-136057519329675525_tmp.htm 200
20:07:09 127.0.0.1 GET /_vti_inf.html 200
20:07:09 127.0.0.1 POST /Process_Proxy/_vti_bin/shtml.dll/_vti_rpc 405
20:07:09 127.0.0.1 GET /_vti_inf.html 200
20:07:09 127.0.0.1 POST /_vti_bin/shtml.dll 200
20:07:09 127.0.0.1 POST /_vti_bin/shtml.dll 200
20:07:09 127.0.0.1 POST /_vti_bin/_vti_aut/author.dll 200
20:07:09 127.0.0.1 POST /_vti_bin/_vti_aut/author.dll 200
20:07:09 127.0.0.1 POST /_vti_bin/_vti_adm/admin.dll 200
20:07:11 127.0.0.1 POST /_vti_bin/_vti_adm/admin.dll 200
20:07:11 127.0.0.1 POST /Process_Proxy/_vti_bin/_vti_aut/author.dll 200
20:07:11 127.0.0.1 POST /Process_Proxy/_vti_bin/_vti_aut/author.dll 200
20:07:11 127.0.0.1 POST /Process_Proxy/_vti_bin/_vti_aut/author.dll 200
20:07:11 127.0.0.1 GET /Process_Proxy/vs-134074747329675525_tmp.htm 200
20:07:11 127.0.0.1 POST /Process_Proxy/_vti_bin/_vti_aut/author.dll 200
20:07:11 127.0.0.1 GET /Process_Proxy/get_aspx_ver.aspx 404
20:07:09 127.0.0.1 GET /Process_Proxy/vs-136057519329675525_tmp.htm 200
20:07:09 127.0.0.1 GET /_vti_inf.html 200
20:07:09 127.0.0.1 POST /Process_Proxy/_vti_bin/shtml.dll/_vti_rpc 405
20:07:09 127.0.0.1 GET /_vti_inf.html 200
20:07:09 127.0.0.1 POST /_vti_bin/shtml.dll 200
20:07:09 127.0.0.1 POST /_vti_bin/shtml.dll 200
20:07:09 127.0.0.1 POST /_vti_bin/_vti_aut/author.dll 200
20:07:09 127.0.0.1 POST /_vti_bin/_vti_aut/author.dll 200
20:07:09 127.0.0.1 POST /_vti_bin/_vti_adm/admin.dll 200
20:07:11 127.0.0.1 POST /_vti_bin/_vti_adm/admin.dll 200
20:07:11 127.0.0.1 POST /Process_Proxy/_vti_bin/_vti_aut/author.dll 200
20:07:11 127.0.0.1 POST /Process_Proxy/_vti_bin/_vti_aut/author.dll 200
20:07:11 127.0.0.1 POST /Process_Proxy/_vti_bin/_vti_aut/author.dll 200
20:07:11 127.0.0.1 GET /Process_Proxy/vs-134074747329675525_tmp.htm 200
20:07:11 127.0.0.1 POST /Process_Proxy/_vti_bin/_vti_aut/author.dll 200
20:07:11 127.0.0.1 GET /Process_Proxy/get_aspx_ver.aspx 404
Unfortunately, requesting this file seems to be normal behavior for Visual Studio and I don't understand why the Web Service Deployment Wizard is not able to handle this properly. I also ran aspnet_regiis /r to see if that would get rid if the problem to no avail.
Has anybody else run into that problem and successfully solved it?