我使用Visual Studio创建了一个Web服务(2005年 - 我知道我已经读完了)并且它编译得很好但是当它打开时我会收到警告:
此Web服务不符合WS-I Basic Profile v1.1。
而且:
此Web服务使用http://tempuri.org/作为其默认命名空间。
除了我的服务开始之外,哪个会好的:
[WebService(Namespace = "http://totally-not-default-uri.com/servicename")]
在整个解决方案文件夹中搜索“tempuri”不会返回任何内容。我无法在Visual Studio中访问的任何配置页面中找到它。然而,当我通过浏览器查看并在同一标记中作为targetNamespace时,它在Web服务描述符页面上的xmlns:tns属性的wsdl:definitions列表中就是正确的。我正在使用Visual Studio的“调试”模式查看它,内置服务器。
似乎某些东西已缓存在某个地方,但我无法弄清楚在哪里和哪里 - 我已经尝试停止并重新启动服务器,清理和重建服务并使用文本编辑器浏览相关的文本配置文件但没有骰子。知道发生了什么事吗?
答案 0 :(得分:6)
咳咳。
经过一段时间试图弄清楚这个,我回到起点并开始质疑我的假设。通常在这种情况下如果没有人似乎有答案我正在做一些非常密集的事情。
果然,我的Web Service文件中有几个类(因为它是一个用于测试的存根,不会长期使用)而且我的.asmx文件中完全选择了错误的类作为支持Web服务的代码。
一旦我纠正了这一切,一切正常。
我并不自豪,这远非我最骄傲的时刻,但我会留下这个,以防万一其他人遇到同样的问题......
答案 1 :(得分:2)
我找到了2个解决方案:要么将数据类移动到自己的代码文件(可能是最好的),要么坚持在同一个文件中保留多个类,将数据类移到Web服务类以下,或者移动[ WebService(Namespace =“...”)]属性只能在WebService类之前。