从 javascript 调用 WCF 后显示 ServiceName not define

After calling WCF from javascript showing ServiceName not define

在我的本地系统中,当我部署到服务器时,所有工作 fine.Problem 都开始了。尝试了很多事情都没有运气。任何帮助将不胜感激。

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true">
            <Services>
                <asp:ServiceReference Path="~/Services/WebChatWCFService.svc" />
            </Services>
        </asp:ScriptManager>

WebChatWCFService.ClientRecieveMessage(vSno, TokenNo, UpdateMessageSuccessCallBack, UpdateMessageFaileCallBack);

错误是:WebChatWCFService 未定义。

这是我的网络配置部分:

<behaviors>
  <endpointBehaviors>
    <behavior name="WebChatWCFServiceAspNetAjaxBehavior">
      <enableWebScript />
    </behavior>
  </endpointBehaviors>
  <serviceBehaviors>
    <behavior name="Ileverage2k10.Services.WebChatWCFServiceAspNetAjaxBehavior">
      <serviceMetadata httpGetEnabled="true" />
    </behavior>
  </serviceBehaviors>
</behaviors>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
<services>
  <service name="Ileverage2k10.Services.WebChatWCFService" behaviorConfiguration="Ileverage2k10.Services.WebChatWCFServiceAspNetAjaxBehavior">
    <endpoint address="" behaviorConfiguration="WebChatWCFServiceAspNetAjaxBehavior" binding="webHttpBinding" contract="Ileverage2k10.Services.WebChatWCFService" />
  </service>
</services>

在我的 WCF 中:命名空间:Ileverage2k10.Services

 [ServiceContract(Namespace = "",
            SessionMode = SessionMode.Allowed)]
        [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
        public class WebChatWCFService
        {
             [OperationContract]
            public List<DClientTempDataContract> ClientRecieveMessage(int vSno, int vTokenNo)
            {
                List<DClientTempDataContract> result = new List<DClientTempDataContract>();

                List<dclienttemp> messageList =
                    LinqClinetFilter.ClientReceiveMessage(vSno, vTokenNo);

                foreach (dclienttemp msg in messageList)
                {
                    result.Add(new DClientTempDataContract(msg));
                }

                return result;

            }
}

此问题是由于 IIS 中的无扩展 URL 处理程序导致 Web 服务无法识别。
请参考下面link.
中的解决方法 https://support.microsoft.com/zh-cn/help/2520479/web-services-may-fail-on-microsoft-internet-information-services-iis-7
此外,这个问题有一个解决方法。在ScriptManager控件中注册服务时,我们可以使用完成的URL替换相对地址。

<asp:ScriptManager ID="ScriptManager1" runat="server">
            <Services>
                <asp:ServiceReference Path="http://localhost:56697/Content/CostService.svc" />
            </Services>
        </asp:ScriptManager>

如果有什么我可以帮忙的,请随时告诉我。