我只是尝试创建一个非常简单的wcf应用程序。这是点击按钮我试图打印" Hello World"在页面上。我发布了该服务,并且它在我的本地系统上工作正常,但是当我尝试在服务器上部署时它也没有。这个应用程序很简单,没有复杂性,没有数据库连接,没什么。但仍无法从服务器调用该服务。检查服务,(Service1.svc - 。右键单击 - >浏览)工作正常,但为什么它无法通过应用程序调用,我不知道。它现在变得更加混乱。对此完全无能为力。发布代码中使用的所有3个必要文件。
web.config文件:
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<services>
<service name ="ApplicationReturnString.Web.Service1.svc">
<endpoint address="" binding="basicHttpBinding"
contract="ServiceReference1.IService1"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
</system.serviceModel>
</configuration>
ClientAccessPolicy.xml文件:
<?xml version="1.0" encoding="utf-8" ?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource include-subpaths="true" path="/"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
CrossDomain.xml文件:
<?xml version="1.0" ?>
<!DOCTYPE cross-domain-policy SYSTEM
"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
ServiceRefrence.ClientConfig文件:
<configuration>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_IService1" maxBufferSize="2147483647"
maxReceivedMessageSize="2147483647">
<security mode="None" />
</binding>
</basicHttpBinding>
</bindings>
<client>
<endpoint address="http://localhost:52731/Service1.svc" binding="basicHttpBinding"
bindingConfiguration="BasicHttpBinding_IService1" contract="ServiceReference1.IService1"
name="BasicHttpBinding_IService1" />
</client>
</system.serviceModel>
</configuration>
答案 0 :(得分:0)
感谢Roy&amp;尼廷。实际上问题是在web.config文件中设置端点地址,并且随着服务部署在其他机器中,应用程序的URL也发生了变化。所以我做了一些重要的更改,如下所示:1。在web.config文件中提供与ServiceRefrence.ClientConfig文件相同的端点地址,端点名称和合同详细信息。 2.在没有特定端口详细信息的情况下更改ServiceRefrence.ClientConfig中的端点地址:而不是;和3.在应用程序中编码以获取它执行的机器的URI地址,以便在部署应用程序的任何地方,用户都不必担心本地主机地址及其端口详细信息:Uri servUri = new Uri(&# 34; ../ Service.svc&#34;,UriKind.Relative); EndpointAddress servAddr = new EndpointAddress(servUri); ServiceReferenceForSelect.ServiceForSelectClient objSelect = new ServiceForSelectClient(&#34; BasicHttpBinding_IService&#34;,servAddr);