从net.tcp协议连接到WCF的端点侦听的问题 [英] Issue with Listening at an Endpoint connecting to WCF from net.tcp protocol
问题描述
从发布此帖子的一天开始,出现了这个奇怪的错误.以前它工作正常,但现在不行.
This weird Error was appearing from one day before posting this post. Previously it was working fine, but not now.
一键重启系统,该错误消失并且可以访问该应用程序.
At one movement restarting the system, the error disappears and able to access the application.
然后再次重新启动系统后,错误开始出现,而根本不知道原因.
and after again rebooting the system the error begins to appear without knowing the root cause.
已启用的协议:net.tcp,http
我可以浏览以下链接
- http://localhost/TAServices/AuthenticationManager.svc
- http://username.domainname.com/TAServices/AuthenticationManager.svc?wsdl
- http://username.domainname.com/TAServices/AuthenticationManager.svc?singleWsdl
- http://localhost/TAServices/AuthenticationManager.svc
- http://username.domainname.com/TAServices/AuthenticationManager.svc?wsdl
- http://username.domainname.com/TAServices/AuthenticationManager.svc?singleWsdl
以下是导致异常的以下代码段
Here is the below snippet which causes an exception
objCheckUserLoginResponse = AuthenticationManagerClient.Check(objCheckUserLoginRequest, objCustomer);
例外:
The message could not be dispatched because the service at the endpoint address 'net.tcp://localhost/TAServices/AuthenticationManager.svc' is unavailable for the protocol of the address.
System.ServiceModel.EndpointNotFoundException: The message could not be dispatched because the service at the endpoint address 'net.tcp://localhost/TAServices/AuthenticationManager.svc' is unavailable for the protocol of the address.
Server stack trace:
at System.ServiceModel.Channels.ConnectionUpgradeHelper.DecodeFramingFault(ClientFramingDecoder decoder, IConnection connection, Uri via, String contentType, TimeoutHelper& timeoutHelper)
at System.ServiceModel.Channels.StreamedFramingRequestChannel.SendPreamble(IConnection connection, TimeoutHelper& timeoutHelper, ClientFramingDecoder decoder, SecurityMessageProperty& remoteSecurity)
at System.ServiceModel.Channels.StreamedFramingRequestChannel.StreamedConnectionPoolHelper.AcceptPooledConnection(IConnection connection, TimeoutHelper& timeoutHelper)
at System.ServiceModel.Channels.ConnectionPoolHelper.EstablishConnection(TimeSpan timeout)
at System.ServiceModel.Channels.StreamedFramingRequestChannel.StreamedFramingRequest.SendRequest(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at TA.ServiceProxy.AuthenticationManager.IAuthenticationManager.Check(CheckUserLoginRequest1 request)
at TA.ServiceProxy.AuthenticationManager.AuthenticationManagerClient.TA.ServiceProxy.AuthenticationManager.IAuthenticationManager.Check(CheckUserLoginRequest1 request) in D:\2017_TFS\TestandAssessment\Dev\Manifest\TestPrepAdmin\ServiceProxy\Service References\AuthenticationManager\Reference.cs:line 3370
at TA.ServiceProxy.AuthenticationManager.AuthenticationManagerClient.Check(CheckUserLoginRequest Request, Customer Customer) in D:\2017_TFS\TestandAssessment\Dev\Manifest\TestPrepAdmin\ServiceProxy\Service References\AuthenticationManager\Reference.cs:line 3377
at TA.UIFrameWork.AuthenticationManagement.AuthenticateUser(CheckUserLoginRequest objCheckUserLoginRequest) in D:\2017_TFS\TestandAssessment\Dev\Manifest\TestPrepAdmin\UIFrameWork\Authentication\AuthenticationManagement.cs:line 19
T: 2020-05-09 12:19:52,242 |L: INFO |TH: 8 |L: Utilities.PageBase |MSG:
SessionID: Method: LoadLanguages
Info: Page: Login.aspx Method: LoadLanguages Enters
AuthenticationManagement.cs
AuthenticationManagement.cs
using TA.ServiceProxy.AuthenticationManager;
using System;
namespace TA.UIFrameWork
{
public class AuthenticationManagement
{
public CheckUserLoginResponse AuthenticateUser(CheckUserLoginRequest objCheckUserLoginRequest)
{
Customer objCustomer;
CheckUserLoginResponse objCheckUserLoginResponse = null;
try
{
objCustomer = new Customer();
objCustomer.CustomerName = "ABC";
objCustomer.CultureInfo = "English";
AuthenticationManagerClient AuthenticationManagerClient = new AuthenticationManagerClient();
AuthenticationManagerClient.Open();
objCheckUserLoginResponse = AuthenticationManagerClient.Check(objCheckUserLoginRequest, objCustomer);
AuthenticationManagerClient.Close();
AuthenticationManagerClient = null;
objCustomer = null;
objCheckUserLoginRequest = null;
}
catch (Exception ex)
{
LoggingFramework.log.Error(ex.Message, ex);
}
return objCheckUserLoginResponse;
}
}
}
}
web.config
web.config
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
<section name="dns" type="System.Configuration.NameValueFileSectionHandler" />
</configSections>
<dataConfiguration defaultDatabase="LocalSqlServer" />
<dns file="dns.config" />
<system.web>
<!-- Web Part -->
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="LocalSqlServer" applicationName="/MVCFramework" />
</providers>
</membership>
<profile enabled="true" defaultProvider="TableProfileProvider">
<providers>
<clear />
<add name="TableProfileProvider" type="Microsoft.Samples.SqlTableProfileProvider" connectionStringName="LocalSqlServer" table="aspnet_Profile" applicationName="/MVCFramework" />
</providers>
</profile>
<!-- End Web Part -->
<pages validateRequest="false" enableEventValidation="false" enableViewStateMac="false" maintainScrollPositionOnPostBack="false" controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID">
<controls>
<add namespace="AjaxControlToolkit" assembly="AjaxControlToolkit" tagPrefix="ajaxToolkit" />
</controls>
</pages>
<customErrors mode="Off">
<error statusCode="403" redirect="Status.aspx" />
<error statusCode="404" redirect="Status.aspx" />
</customErrors>
<httpCookies httpOnlyCookies="true">
</httpCookies>
<trace enabled="false" localOnly="true">
</trace>
<httpRuntime maxRequestLength="2097151" executionTimeout="220000" requestValidationMode="2.0" />
<!--
Set compilation debug="false" to insert debugging
symbols into the compiled page. Because this
affects performance, set this value to true only
during development.
-->
<compilation debug="true" defaultLanguage="c#" targetFramework="4.0">
<assemblies>
</assemblies>
<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.Common, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</buildProviders>
</compilation>
<sessionState mode="InProc" timeout="6000" cookieless="UseCookies">
</sessionState>
<authorization>
<allow users="?" />
</authorization>
<httpHandlers>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false" />
<add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false" />
</httpHandlers>
</system.web>
<system.net>
<settings>
<servicePointManager expect100Continue="false" />
</settings>
</system.net>
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="1024000000"></requestLimits>
</requestFiltering>
</security>
<validation validateIntegratedModeConfiguration="false" />
<handlers>
<remove name="ChartImageHandler" />
<add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</handlers>
<modules>
<add name="QueryStringValidation" type="Presentation.Utilities.QueryStringValidation" />
</modules>
</system.webServer>
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient" />
<add name="MySQL Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySQL" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.3.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
</DbProviderFactories>
</system.data>
<system.serviceModel>
<bindings>
<basicHttpBinding>
<binding name="BasicHttpBinding_Framework" closeTimeout="00:50:00" openTimeout="00:50:00" receiveTimeout="00:50:00" sendTimeout="00:50:00" allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard" maxBufferSize="999999999" maxBufferPoolSize="524288" maxReceivedMessageSize="999999999" messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered" useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxStringContentLength="999999999" maxArrayLength="999999999" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="None"/>
</binding>
</basicHttpBinding>
<netTcpBinding>
<binding name="NetTcpBinding_Framework" closeTimeout="00:50:00" openTimeout="00:50:00" receiveTimeout="00:50:00" sendTimeout="00:51:00" transactionFlow="false" transferMode="Streamed" transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard" listenBacklog="10" maxBufferPoolSize="999999999" maxBufferSize="999999999" maxConnections="10" maxReceivedMessageSize="999999999">
<readerQuotas maxDepth="32" maxStringContentLength="999999999" maxArrayLength="999999999" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<reliableSession ordered="true" inactivityTimeout="00:50:00" enabled="false" />
<security mode="None">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
<message clientCredentialType="Windows" />
</security>
</binding>
</netTcpBinding>
</bindings>
<client>
<endpoint address="net.tcp://localhost/TAServices/AccountManager.svc" binding="netTcpBinding" bindingConfiguration="NetTcpBinding_Framework" contract="AccountManager.IAccountManager" name="NetTcpBinding_Framework" />
</client>
<behaviors>
<endpointBehaviors>
<behavior name="ClientBehavior">
<dataContractSerializer maxItemsInObjectGraph="10000000" />
</behavior>
</endpointBehaviors>
</behaviors>
</system.serviceModel>
<location path="Common">
<system.web>
<authorization>
<allow users="?" />
</authorization>
</system.web>
</location>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="5000000" />
</webServices>
</scripting>
</system.web.extensions>
</configuration>
我不知道原因,无能为力.
请在解决EndpointNotFoundException
问题代码或Windows 10(1903)问题时提出建议
Without knowing the cause I was not able to do anything.
Please suggest in resolving EndpointNotFoundException
issue wrt to code or from windows 10 (1903)
推荐答案
我已通过在启动英特尔®图形驱动程序更新后释放占用端口808
的OneApp.IGCC.WinService.exe
来解决此问题.但这听起来很奇怪,所以请检查SMSvcHost.exe
是否在808
端口中列出.
I had solved this issue by releasing OneApp.IGCC.WinService.exe
which had occupied the port 808
after Intel® Graphics Driver update was initiated. But it sounds weird, so check whether SMSvcHost.exe
is listing to 808
port.
C:\Windows\system32>netstat -ano | find "808"
TCP 0.0.0.0:808 0.0.0.0:0 LISTENING 4356
TCP [::]:808 [::]:0 LISTENING 4356
如果未从提升的提示符下执行命令TASKKILL /F /PID <ProcessId>
.所以就我而言,
If not execute the command TASKKILL /F /PID <ProcessId>
from elevated prompt. So in my case,
C:\Windows\system32>netstat -ano | find "808"
TCP 0.0.0.0:808 0.0.0.0:0 LISTENING 5068
TCP [::]:808 [::]:0 LISTENING 5068
C:\Windows\system32>tasklist | find "5068"
OneApp.IGCC.WinService.ex 5068 Services 0 36,632 K
C:\Windows\system32>taskkill /F /PID 5068
SUCCESS: The process with PID 5068 has been terminated.
C:\Windows\system32>netstat -ano | find "808"
C:\Windows\system32>
然后从services.msc
即使重新启动系统后,OneApp.IGCC.WinService.exe
也会通过监听808
端口来覆盖SMSvcHost.exe
.因此,禁止从services.msc
Even after rebooting the system OneApp.IGCC.WinService.exe
will override the SMSvcHost.exe
by listening to 808
port. So Disable running of Intel(R) Graphics Command Center Service (C:\Windows\System32\DriverStore\FileRepository\igcc_dch.inf_amd64_26b207b939eae50e)
from services.msc
这篇关于从net.tcp协议连接到WCF的端点侦听的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!