我有一个包含多个项目的解决方案,一个是网站,另一个是单独的Web服务器。 (它们将驻留在不同的主机上。)我需要从网站上的一些javascript连接到Web服务。然而,尽管这似乎是一件显而易见的事情,但我似乎无法做到这一点。 我的Web服务工作正常,我可以在同一解决方案中的单独项目中从Windows窗体应用程序连接到它。 我在aspx文件中的内容是:
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Services>
<asp:ServiceReference Path="~/../WebService/WebService.asmx" />
</Services>
</asp:ScriptManager>
<script type="text/javascript">
function calback(result)
{
alert("hello");
}
WebService.FunctionToCall("hello", callback);
</script>
但是,服务引用说它无法访问..来自〜
有人能指出我正确的方向吗?
答案 0 :(得分:0)
尝试使用完整路径而不是〜/../
答案 1 :(得分:0)
这两个项目处于同一解决方案的事实无关紧要。您将它们托管在两台不同的服务器上。只有网址才有意义。
由于您的开发计算机与生产(以及毫无疑问,测试)计算机之间的URL不同,您必须像根据环境更改的任何其他URL一样处理 - 您需要使用配置文件。
我还没有完全测试过这个,但它看起来有效:
<asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Debug" >
<Services>
<asp:ServiceReference Path="<%$ AppSettings:webServiceUrl %>" />
</Services>
</asp:ScriptManager>
web.config中的:
<appSettings>
<add key="webServiceUrl" value="http://localhost:38759/Enumerations.asmx"/>
</appSettings>
这实际上确实生成了对上述Web服务的脚本引用。