无论我在Visual Studio中的asmx服务中进行了哪些更改,WSDL文件始终保持不变。当我浏览到服务定义时,删除方法,更改方法签名没有任何效果。
答案 0 :(得分:1)
我有一个类似的问题。
当删除枚举并用字符串替换它时,枚举不会离开wsdl。无论我尝试了什么(清理,重建,清除浏览器缓存,其他浏览器),它都会将枚举作为WSDL中的复杂类型返回。
我的案例中的解决方案是通过Windows资源管理器删除项目的本地文件夹,然后从TFS执行获取最新信息。在此之后问题得以解决。
当然,此解决方案仅在使用源控制系统时适用。
答案 1 :(得分:0)
更改服务后,您必须构建它并确保新版本正在运行。一个快捷方式是构建它(并确保没有错误),然后右键单击.ASMX文件并选择“在浏览器中查看”。
此外,虽然我确定您已经意识到这一点,但您不应该使用ASMX Web服务进行新开发。微软现在认为ASMX是一项传统技术。改为使用WCF。
答案 2 :(得分:0)
我遇到了这个问题,并有一个解决方案。
原因:在Visual Studio中创建新的“Web服务”项目时,它会自动将“Service1.asmx”文件添加到项目中。您重命名此文件并更改其中的类声明,但Studio仍然认为它是“Service1”wnd将只显示“Service1”的Web服务定义。
<强>解决方案:强>
您的asmx现在应准确反映您的网络服务,并在未来版本中正常更新。
答案 3 :(得分:0)
我今天遇到了同样的问题。它是由包含Web服务公开的类型定义的程序集的GACed版本引起的。我必须首先从全局程序集缓存中删除程序集,如:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\gacutil.exe" /u YourAssemblyNameWithouthDllExtebsion /f
确保重新启动托管Web服务的Web服务器以重新加载新版本的程序集,例如,在IIS Express的情况下,您可以通过PowerShell终止以前的流程实例:
(Get-Process -Name iisexpress).Kill()
之后,更新的WSDL版本按预期显示。