c# - 在 Azure 的 IIS 中使用 net.tcp 绑定(bind)托管 WCF 服务

标签 c# wcf azure net.tcp azure-cloud-services

我正在尝试根据本文 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/

相关文章:

c# - Unity3D - 获取组件

c# - Entity Framework : Alternate solution to using non primary unique keys in an association

c# - WCF MessageHeader 不会写入命名空间

c# - 如何读取 HTTP header 值

c# - 如何将流中的图像另存为在 retrofit2 中发送到 wcf web 服务

Azure AD B2C 在用户中导入

c# - 反序列化直到运行时才知道的对象

c# - 从 C# 中的 XML 填充下拉列表

.net - Azure 上的多个工作进程

azure - Terraform Azure AKS - 如何将 UAMI 设置为 AKS 集群的 kubelet_identity