我的开发环境是.net FrameWork 3.5 sp1,Visual Studio 2008 Sp1 ,Windows Server 2008 sp1)
由于WSE有被WCF取代之势,WSE3.0的安装包已经不支持Visual Studio 2008,所以首相要解决的问题是如何让WSE3.0被Visual Studio 2008 支持。
问题分析:
在我们利用VS工具引用Web Service的时候会生成一些代理类文件,其机制是VS这个开发工具调用MsDiscoCodeGenerator这个工具,接着MsDiscoCodeGenerator利用ServiceDescriptionImportor来生成我们在开发工具中看到的类。这是普通Web Service Proxy的生成方式,而WSE是利用WseExtensionImpotor这个类来生成。关于MsDiscoCodeGenerator这个工具可以在注册表中找到,路径为:HEKY_LOCAL_MACHINE->Microsoft->Visual studio ->9.0->generator,
,
具体信息可以参看http://www.drewnoakes.com/snippets/WritingACustomCodeGeneratorToolForVisualStudio/。所以要解决这个问题,首先就要让VS知道我们用WseExtensionImportor。
具体解决步骤:
配置devenv.exe.config,把下面的代码paste到里面,devenv.exe.config跟Vs是一个目录。目的就是让VS开发工具知道我们要用WseExtensionImportor类来生成代理类文件
<system.web>
<webServices>
<soapExtensionImporterTypes>
<add type="Microsoft.Web.Services3.Description.WseExtensionImporter,
Microsoft.Web.Services3, Version=3.0.0.0,
Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</soapExtensionImporterTypes>
</webServices>
http://msnpiki.msnfanatic.com/index.php/Main_Page-->
文章出处:DIY部落(http://www.diybl.com/course/3_program/cshapo/csharpjs/20100108/188516.html)