我正在尝试根据本文 http://blogs.msdn.com/b/tomholl/archive/2011/06/28/hosting-services-with-was-and-iis-on-windows-azure.aspx 在 Azure 中的 IIS 中托管具有 net.tcp 绑定(bind)的 WCF 服务。但没有任何效果。
我尝试执行以下操作: 创建云服务 创建 WCF Web 角色 在 web-role 项目中创建文件夹 Startup 并在其中放置两个文件: 启动.cmd
powershell -command "set-executionpolicy Unrestricted" >> out.txt
角色开始.ps1
import-module WebAdministration
# Starting the listener service
$listenerService = Get-WmiObject win32_service -filter "name='NetTcpActivator'"
$listenerService.ChangeStartMode("Manual")
$listenerService.StartService()
$listenerService = Get-WmiObject win32_service -filter "name='NetTcpPortSharing'"
$listenerService.ChangeStartMode("Manual")
$listenerService.StartService()
$WebRoleSite = (Get-WebSite "*webrole*").Name
Get-WebApplication -Site $WebRoleSite | Foreach-Object { $site = "IIS:/Sites/$WebRoleSite" + $_.path; Set-ItemProperty $site -Name EnabledProtocols 'http,net.tcp'}
New-ItemProperty "IIS:/Sites/$WebRoleSite" -name bindings -value @{protocol="net.tcp";bindingInformation="808:*"}
我还使用端口 808 将 net.tcp 端点添加到角色属性中。
当我尝试发布时第一次失败 - 角色循环启动和停止。但是当我禁用 Startup.cmd 时,它发布成功。
但即使在这种情况下,我也无法解析服务引用。
我必须做什么才能使该服务正常运行?
最佳答案
确保在您的服务定义文件中,您的executionContext 设置为“提升”。请参阅this MSDN post有关可用选项的更多详细信息。
关于c# - 在 Azure 的 IIS 中使用 net.tcp 绑定(bind)托管 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27215258/