我整夜都在为此奋斗,所以这里是:
我有一个名为 Send 的 Azure 服务总线 WCF 服务。我想使用 Windows 2008 R2(标准)服务器通过 Windows Server AppFabric 的自动启动功能在 IIS 中托管它。
我已经安装了Windows Server AppFabric,看起来很顺利。但是,我在 UI 中缺少“自动启动”选项,您通常可以通过右键单击 IIS 中的“网站”节点来获得该选项,它应该如下所示:
但是,我改用了 powershell 命令,它们似乎有效。有选择地自动启动服务的选项确实启用了。所以,我认为它应该有效。但是,它不会自动启动,我在事件日志中也没有收到任何错误。以下是我的网络配置:
<!-- Service Bus Service -->
<service name="TestWeb.Send" behaviorConfiguration="serviceBusBehavior">
<endpoint address="sb://mynamespace.servicebus.windows.net/Send/" contract="TestWeb.ISend" binding="netTcpRelayBinding" behaviorConfiguration="SharedSecretCredentials" />
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="serviceBusBehavior">
<serviceMetadata />
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="SharedSecretCredentials">
<transportClientEndpointBehavior credentialType="SharedSecret">
<clientCredentials>
<sharedSecret issuerName="owner" issuerSecret="xxxxxxxxxxxxxxxxxxxxxx=" />
</clientCredentials>
</transportClientEndpointBehavior>
</behavior>
</endpointBehaviors>
</behaviors>
我的服务契约(Contract)非常基本:
[ServiceContract]
public interface ISend
{
[OperationContract]
void SendMail(String Subject, String To, String Text, String HTML);
}
我还按照此处 http://msdn.microsoft.com/en-us/gg282466 的指示将 ServiceBus_schema.xml 添加到 Inetserv 下的正确文件夹中
如果我实际上在浏览器中访问该服务,它会正常加载,并且我会看到服务总线注册了端点。但是,此时我不需要做任何事情,它就应该这样做。
大家有什么想法吗?
最佳答案
我会回答我自己的问题,因为我终于弄清楚了。我试图在根网站中自动启动服务。事实证明,它需要是一个从现有网站添加的应用程序。如果他们在某个地方这么说就好了。我的所有选项都显示了,并且该服务实际上自动启动了。
关于.net - Windows AppFabric 自动启动未启动 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5846605/