我有一个具有两个功能的 ASMX Web 服务。一个函数将 JSON 对象发送到服务器并将其存储在文件中,而另一个函数从服务器检索 JSON 对象。该网络服务在本地运行良好,但是当我在远程服务器中尝试它时,我收到众所周知的“测试表单仅适用于来自本地计算机的请求”错误。
根据不同论坛的建议,我已将协议添加到我的 web.config 文件中:
<system.web>
<webServices>
<protocols>
<add name="HttpSoap12"/>
<add name="HttpSoap"/>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
</system.web>
添加 POST 协议使得第二个功能(检索对象的功能)可以从远程使用,但第一个功能仍然只能从本地计算机使用。
我一直无法找到这个问题的解决方案,因为我找到的每个解决方案都只是在 web.config 文件中添加协议,这仅适用于这两个功能之一。
有一个问题似乎有类似的问题,是由于使用 DateTime 类型作为输入参数引起的。就我而言,也许它与使用“对象”类型作为函数的输入有关?如果我不能使用对象类型,我有什么替代方案?
任何建议都会有帮助。
谢谢您并致以诚挚的问候,
我也有同样的问题。添加 ws 协议后,VS 2012 没有将 web.config 发布到我发布的源中。当我手动复制文件时它起作用了。
发生这种情况的另一个原因是您的参数是更复杂的对象,包括 GUID 等