Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services WCF,Net.Tcp端点,代码优先_Web Services_Wcf_Vb.net_Service - Fatal编程技术网

Web services WCF,Net.Tcp端点,代码优先

Web services WCF,Net.Tcp端点,代码优先,web-services,wcf,vb.net,service,Web Services,Wcf,Vb.net,Service,我有一个WCF服务,该服务在WSHttp端点上运行良好,作为ServiceHost下的Windows服务运行。但是,由于可伸缩性,我想转移到TCP端点。就我的一生而言,我不知道如何正确地主持它。以下是我的主机的启动例程,在VB中: Protected Overrides Sub OnStart(ByVal args() As String) If _svcHost IsNot Nothing Then _svcHost.Close() End If _s

我有一个WCF服务,该服务在WSHttp端点上运行良好,作为ServiceHost下的Windows服务运行。但是,由于可伸缩性,我想转移到TCP端点。就我的一生而言,我不知道如何正确地主持它。以下是我的主机的启动例程,在VB中:

Protected Overrides Sub OnStart(ByVal args() As String)
    If _svcHost IsNot Nothing Then
        _svcHost.Close()
    End If

    _svcHost = New ServiceHost(GetType(AutoTestsDataService), New Uri("net.tcp://" & GetIPv4Address() & ":8000"))

    Dim metaDataBehavior = _svcHost.Description.Behaviors.Find(Of ServiceMetadataBehavior)()
    If metaDataBehavior Is Nothing Then
        _svcHost.Description.Behaviors.Add(New ServiceMetadataBehavior() With {.HttpGetEnabled = False})
    Else
        metaDataBehavior.HttpGetEnabled = False
    End If

    _svcHost.AddServiceEndpoint(GetType(IMetadataExchange), MetadataExchangeBindings.CreateMexTcpBinding, "mex")
    _svcHost.AddServiceEndpoint(GetType(AutoTestsDataService), New NetTcpBinding(SecurityMode.None, False), ServiceName)

    Dim debugBehavior As ServiceDebugBehavior = _svcHost.Description.Behaviors.Find(Of ServiceDebugBehavior)()
    If debugBehavior Is Nothing Then
        _svcHost.Description.Behaviors.Add(New ServiceDebugBehavior() With {.IncludeExceptionDetailInFaults = My.Settings.flagDebug})
    Else
        debugBehavior.IncludeExceptionDetailInFaults = My.Settings.flagDebug
    End If

    Try
        _svcHost.Open()
    Catch ex As Exception
        _svcHost.Abort()
    End Try
End Sub

按原样,代码编译良好,安装良好,Windows服务启动良好。但在8000端口上没有任何监听。我已确保Net.Tcp侦听器和端口共享服务正常运行。我选择根本不使用配置文件,因为我过去有很多问题,对我来说,将代码放入配置文件是不好的,不管微软希望我相信什么。代码优先的实现总是比XML更容易理解,对我来说,上面的代码将所有正确的部分放在正确的位置。它就是不起作用。正如我所说,我可以坚持使用WSHttp,但我更愿意理解为什么Net.Tcp不起作用。

确定WCF服务侦听器在启动过程中正在做什么的最佳方法是启用WCF跟踪。因此,我建议您在服务上配置跟踪,它应该提供有关启动时发生的任何底层异常的详细信息

WCF跟踪为故障监控和分析提供诊断数据。您可以使用跟踪而不是调试器来了解应用程序的行为方式,或者它出现故障的原因。您还可以跨组件关联故障和处理,以提供端到端体验,包括跨应用程序所有组件的流程里程碑跟踪,例如操作调用、代码异常、警告和其他重要处理事件


确定WCF服务侦听器在启动期间正在执行的操作的最佳方法是启用WCF跟踪。因此,我建议您在服务上配置跟踪,它应该提供有关启动时发生的任何底层异常的详细信息

WCF跟踪为故障监控和分析提供诊断数据。您可以使用跟踪而不是调试器来了解应用程序的行为方式,或者它出现故障的原因。您还可以跨组件关联故障和处理,以提供端到端体验,包括跨应用程序所有组件的流程里程碑跟踪,例如操作调用、代码异常、警告和其他重要处理事件


确定WCF服务侦听器在启动期间正在执行的操作的最佳方法是启用WCF跟踪。因此,我建议您在服务上配置跟踪,它应该提供有关启动时发生的任何底层异常的详细信息

WCF跟踪为故障监控和分析提供诊断数据。您可以使用跟踪而不是调试器来了解应用程序的行为方式,或者它出现故障的原因。您还可以跨组件关联故障和处理,以提供端到端体验,包括跨应用程序所有组件的流程里程碑跟踪,例如操作调用、代码异常、警告和其他重要处理事件


确定WCF服务侦听器在启动期间正在执行的操作的最佳方法是启用WCF跟踪。因此,我建议您在服务上配置跟踪,它应该提供有关启动时发生的任何底层异常的详细信息

WCF跟踪为故障监控和分析提供诊断数据。您可以使用跟踪而不是调试器来了解应用程序的行为方式,或者它出现故障的原因。您还可以跨组件关联故障和处理,以提供端到端体验,包括跨应用程序所有组件的流程里程碑跟踪,例如操作调用、代码异常、警告和其他重要处理事件


我在这里看到的唯一问题是方法
GetIPv4Address()
及其返回的内容。通常最好的选择是使用localhost、host name或0.0.0.0。

我在这里看到的唯一问题是方法
GetIPv4Address()
及其返回的内容。通常最好的选择是使用localhost、host name或0.0.0.0。

我在这里看到的唯一问题是方法
GetIPv4Address()
及其返回的内容。通常最好的选择是使用localhost、host name或0.0.0.0。

我在这里看到的唯一问题是方法
GetIPv4Address()
及其返回的内容。通常最好的选择是使用localhost、host name或0.0.0.0。

\u svcHost.Open()
吗?如果是这样,例外情况是什么?否定的,一切正常,端口8000上没有任何侦听。没有引发任何异常。您是否尝试了指向IIS托管服务的链接。我的是通过ServiceHost托管的,据我所知,没有协议可以启用。只要Net.Tcp侦听器服务正在运行,它就应该工作。
\u svcHost.Open()
正在抛出吗?如果是这样,例外情况是什么?否定的,一切正常,端口8000上没有任何侦听。没有引发任何异常。您是否尝试了指向IIS托管服务的链接。我的是通过ServiceHost托管的,据我所知,没有协议可以启用。只要Net.Tcp侦听器服务正在运行,它就应该工作。
\u svcHost.Open()
正在抛出吗?如果是这样,例外情况是什么?否定的,一切正常,端口8000上没有任何侦听。没有引发任何异常。您是否尝试了指向IIS托管服务的链接。我的是通过ServiceHost托管的,据我所知,没有协议可以启用。只要Net.Tcp侦听器服务正在运行,它就应该工作。
\u svcHost.Open()
正在抛出吗?如果是这样的话,例外情况是什么?否定的,一切都按它应该的方式运行,只是没有人在听