我对以下配置文件有几个问题:
<system.serviceModel>
<bindings />
<services>
<service behaviorConfiguration="WcfReporting.Service1Behavior"
name="WcfReporting.Service1">
<endpoint address=""
binding="basicHttpBinding" bindingConfiguration=""
contract="WcfReporting.IService1">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint address="mex" binding="mexHttpBinding"
contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:5050/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="WcfReporting.Service1Behavior" >
<!-- To avoid disclosing metadata information, set the value below to false
and remove the metadata endpoint above before deployment -->
<serviceMetadata httpGetEnabled="true"/>
<!-- To receive exception details in faults for debugging purposes,
set the value below to true. Set to false before deployment to
avoid disclosing exception information -->
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
为什么当我点击F5重启服务时,服务以此URL http://localhost:2752/开始...为什么不是我在baseAddresses中指定的5050。
如何添加其他端点。我尝试使用endpoint address =“/ Address2”binding =“basicHttpBinding”contract =“WcfReporting.IService1”/&gt;
我应该如何才能访问该服务,不仅是http://localhost/VirtualDir/,还有http://localhost/VirtualDir/address2或者它是如何运作的?
答案 0 :(得分:3)
如果您在Visual Studio 2005或更高版本中托管Cassini,则可以使用Project / Properties / Web / Use Visual Studio Development Server / Specific Port指定端口。
默认情况下,端口将自动分配 - 这对Web服务没有多大帮助,因为您的客户可能希望使用固定的URL。
您无需指定&lt; baseAddresses&gt;在IIS或Cassini中托管时的配置文件中 - 基本URL由Web服务器提供。 &lt; baseAddresses&gt;元素在自托管时使用。
答案 1 :(得分:1)
如何添加其他端点?一世 尝试使用端点 地址=“/地址2” 结合= “basicHttpBinding的” contract =“WcfReporting.IService1”/&gt;
您在此端点中指定的地址需要是本地和相对的 - 例如只需指定
<endpoint address="Address2"
binding="basicHttpBinding"
contract="WcfReporting.IService1" />
这将在
的完整地址处创建一个端点net.tcp://localhost:5050/Address2
但正如Darin已经指出的那样 - 如果您使用IIS / WAS来托管您的服务,则* .svc文件所在的虚拟目录将优先,并且将忽略指定的基址。为了真正使用基地址,您需要在控制台应用程序或Windows服务中自行托管服务。
马克
答案 2 :(得分:0)
如果您使用Web服务器(例如Cassini或IIS)来托管您的WCF服务,则将从此服务器提供基本地址。另请注意,您无法通过HTTP使用TCP绑定。如果您希望能够设置基地址属性,则需要自己托管服务(例如,在NT服务,控制台或Windows应用程序中)。