我写了一个最简单的wcf服务,它有一个方法
// return a+b
int ICalc::add(int a, int b)
当我尝试通过本地计算机访问服务时 - 我得到的结果没有问题。 但尝试从其他机器访问我无法获得服务。
我尝试定义
<security mode="None"/>
来自客户端计算机。
我尝试定义网页'default.htm'以查看我是否可以访问并查看网页(更清楚..我可以访问并查看default.htm页面)。
我尝试使用IP访问并使用机器名称 - 但没有!什么都行不通。
我将我的服务定义为WAS。
有人可以帮我吗?
服务web.config文件:(192.168.1.117是机器ip - 但我也尝试使用localhost和机器名......没什么帮助)
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime maxRequestLength="10000000" />
</system.web>
<system.serviceModel>
<services>
<service name="ServiceLibrary.ServiceProxy" behaviorConfiguration="ServiceBehavior">
<endpoint address="" binding="wsHttpBinding" contract="ServiceLibrary.IServiceProxy">
<identity>
<dns value="192.168.1.117:50025"/>
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
<host>
<baseAddresses>
<add baseAddress="http://192.168.1.117:50025/ServiceProxy/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceBehavior">
<serviceMetadata httpGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" />
客户端app.config
文件:(这里我也尝试使用机器ip并尝试使用机器名称 - 我也尝试禁用客户端和服务器的防火墙......没什么帮助)
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="WSHttpBinding_IServiceProxy" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="2147483647" maxReceivedMessageSize="2147483647"
messageEncoding="Text" textEncoding="utf-8" useDefaultWebProxy="true"
allowCookies="false" >
<security mode="None"/>
<readerQuotas maxDepth="32" maxStringContentLength="2147483647"
maxArrayLength="2147483647" maxBytesPerRead="4096" maxNameTableCharCount="2147483647" />
<reliableSession ordered="true" inactivityTimeout="00:10:00"
enabled="false" />
</binding>
</wsHttpBinding>
</bindings>
<client>
<endpoint address="http://192.168.1.117/ServiceProxy.svc"
binding="wsHttpBinding" bindingConfiguration="WSHttpBinding_IServiceProxy"
contract="ServiceReference1.IServiceProxy" name="WSHttpBinding_IServiceProxy">
<identity>
<dns value="192.168.1.117" />
</identity>
</endpoint>
</client>
</system.serviceModel>
答案 0 :(得分:1)
您忘记了客户端配置文件中的端口:
address="http://192.168.1.117:50025/ServiceProxy.svc"
编辑:如果仍然失败,请使用浏览器直接从客户端计算机浏览到address
:你得到了什么?
另外,你到底发生了什么错误?
答案 1 :(得分:0)
我在客户端配置文件中添加了端口 - 但它仍然没有帮助,我仍然无法打开该服务。
(在r.open()
中失败ServiceProxyClient r = new ServiceProxyClient();
r.Open();
)