C#:Bug,EndpointDispatcher&ContractFilter

项目发布的时候,文件上传忽然出现一个问题,很古怪,问题描述如下:

Error:

StackTrace:


[FaultException:由于 
ContractFilter在 EndpointDispatcher不匹配,因此
Action为“http://schemas.xmlsoap.org/ws/2005/02/trust/RST/Issue”的消息无法在接收方处理。这可能是由于协定不匹配(发送方和接收方
Action 不匹配)或发送方和接收方绑定/安全不匹配。请检查发送方和接收方是否具有相同的协定和绑定(包括安全要求,如
Message、Transport、None)。]

System.ServiceModel.Security.SecurityUtils.ThrowIfNegotiationFault(Message message, EndpointAddress target) +5499790

System.ServiceModel.Security.SspiNegotiationTokenProvider.GetNextOutgoingMessageBody(Message incomingMessage, SspiNegotiationTokenProviderState
sspiState) +49

[SecurityNegotiationException: Secure channel cannot be opened because security negotiation with the remote endpoint has failed. This may be due
to absent or incorrectly specified EndpointIdentity in the EndpointAddress used to create the channel. Please verify the EndpointIdentity specified or implied by the EndpointAddress correctly identifies the remote endpoint. ]

WHPT_WebApp.HanderOperater.HanderOperaterAddMuti.btn_import_Click(Object sender, ImageClickEventArgs e) in E:\GH_WHPT1210\WHPT_WebApp\HanderOperater\HanderOperaterAddMuti.aspx.cs:163

System.Web.UI.WebControls.ImageButton.OnClick(ImageClickEventArgs e) +115

System.Web.UI.WebControls.ImageButton.RaisePostBackEvent(String eventArgument) +120

System.Web.UI.WebControls.ImageButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10

System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13

System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36

System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563

[SecurityNegotiationException:无法打开安全通道,因为安全协商与远程终结点失败。这可能是由于缺席或不正确地指定的EndpointIdentity在EndpointAddress用来创建的通道。请验证EndpointIdentity指定或隐含的EndpointAddress正确标识远程终结点。]

属性值

类型:System.Boolean

如果通过协商过程获取服务凭据,则为 true;否则为false。
默认值为 true。

MessageSecurityOverHttp.NegotiateServiceCredential 属性

NegotiateServiceCredential ="true"

获取或设置一个值,该值指示是在带外客户端提供服务凭据,还是通过协商过程从服务向客户端获取服务凭据。

属性设置为 true 需要客户端和服务支持 WS-Trust 和 WS-SecureConversation。将属性设置为
false 时不需要 WS-Trust 或 WS-SecureConversation 受支持。

对于 Anonymous、Username 或 Certificate 客户端凭据类型,将此属性设置为false 意味着服务证书必须可用于带外客户端,并且客户端必须指定要使用的服务证书。

对于 Windows 凭据,将此属性设置为 false 将导致基于KerberosToken 的身份验证。
这要求客户端和服务都是 Kerberos 域的一部分。
此模式可与实现 OASIS Kerberos 令牌配置文件的 SOAP 堆栈交互操作。将此属性为
true 会引起通过 SOAP 消息进行 SPNego 交换的 SOAP 协商。此模式不可互操作。

此属性指示是否在客户端和服务之间自动协商服务凭据。
如果此属性为 true,则会进行此类协商。
如果此属性为 false,则在与服务进行通信之前,必须在客户端指定服务凭据。

如果将此属性设置为 false,并且将绑定配置为使用 Windows 作为客户端凭据类型,则必须将服务帐户与服务主体名称 (SPN) 相关联。为此,请在 NETWORK SERVICE 帐户或 LOCAL SYSTEM 帐户下运行服务。也可以使用
SetSpn.exe 工具为服务帐户创建一个 SPN。
不论何种情况,客户端都必须使用 <servicePrincipalName> 元素中的正确 SPN,或者通过使用EndpointAddress
构造函数来应用正确的 SPN。

WSHttpBinding binding = new WSHttpBinding();
binding.Security.Mode = SecurityMode.Message;
binding.Security.Message.ClientCredentialType =
    MessageCredentialType.UserName;
binding.Security.Message.NegotiateServiceCredential = false;

CalculatorClient CalculatorClient = new CalculatorClient("myBinding");
CalculatorClient.ClientCredentials.ServiceCertificate.
    SetDefaultCertificate("Al", StoreLocation.CurrentUser, StoreName.My);

另外,发一下我的配置错误所在:

 <configuration>                                                                                                                  <system.serviceModel>
    <bindings>
      <wsHttpBinding>
        <binding name="WSHttpBinding_IExcelService" closeTimeout="00:01:00"
         openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
         bypassProxyOnLocal="false" transactionFlow="false" hostNameComparisonMode="StrongWildcard"
         maxBufferPoolSize="524288" maxReceivedMessageSize="65536" messageEncoding="Text"
         textEncoding="utf-8" useDefaultWebProxy="true" allowCookies="false">
          <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
           maxBytesPerRead="4096" maxNameTableCharCount="16384" />
          <reliableSession ordered="true" inactivityTimeout="00:10:00"
           enabled="false" />
          <security mode="Message">
            <transport clientCredentialType="Windows" proxyCredentialType="None"
             realm="" />
            <message clientCredentialType="Windows" negotiateServiceCredential="true"
             algorithmSuite="Default" />
          </security>
        </binding>
      </wsHttpBinding>
    </bindings>
    <client>
      <endpoint address="http://localhost/ExcelService.svc" binding="wsHttpBinding"
      bindingConfiguration="WSHttpBinding_IExcelService" contract="ExcelService.IExcelService"
      name="WSHttpBinding_IExcelService">
        <identity>
          <dns value="localhost" />
        </identity>
      </endpoint>
    </client>
  </system.serviceModel>
</configuration>

PS:此文仅供记录交流,不做它用



时间: 2024-11-08 16:50:44

C#:Bug,EndpointDispatcher&ContractFilter的相关文章

成熟度测试:) 证明自已有BUG,需要改进

心理成熟度是一个人的心理承受力.耐受力和适应性的整体表现.心理成熟度的高低意味着一个人的社会化程度,即一个人通过和社会环境及其周围人群的互动,逐渐融入社会,心理逐渐成长的程度.心理成熟度差的人,不太容易适应不断变化的环境,也不太容易形成良好的自我控制,且在人际关系和心理健康中很容易出现问题:心理成熟度高的人,面对社会和环境的变化较易适应,比较容易根据外界的变化调节自己的行为,他们的自控能力.承受能力都比较好,可以通过自我调节使自己保持心理上的相对平衡.             您的心理成熟度为一

软件工程腾讯QQ (1)优点:聊天功能比较强大。同时提供安全登陆通道,保障了用户信息的安全性。应用的人群范围比较广 缺点:要展示的信息量太多,用户个人信息容易泄露。有一些弄虚作假通过其欺骗用户上当。 (2)有使用需要自己下载 (3)版本更新修复bug,定期更新版本

1.软件工程未来的发展方向是什么? 2.编程基础不好,我能学习好软件工程吗? 3.软件工程跟物联网之间的区别与联系是什么? 4.软件工程在现实生活中有哪些应用? 5.在软件工程的分类中,如何选择一个适合自己的? 6.软件工程的学习中最难克服的阶段是什么? 7.怎样学好软件工程? 腾讯QQ (1)优点:聊天功能比较强大.同时提供安全登陆通道,保障了用户信息的安全性.应用的人群范围比较广 缺点:要展示的信息量太多,用户个人信息容易泄露.有一些弄虚作假通过其欺骗用户上当. (2)有使用需要自己下载 (

Android实习周记:第五周,如果测试没提那么多bug,世界将变成美好的人间

这周我终于见识了传说中的测试的威力 1.工作总结 上周把UI画好,这周周一调接口,填充数据,周四打包提测,下班前师兄"阴险"地对我说:明天准备迎接bug吧~~. 其实一开始我是不以为然的,因为我自信已经把该做的都做的比较好了. 结果!!!!! 硬生生是报了100个bug! 好吧我手一抖多打了个0,但是对于伪处女座的我10个也很多啊! 我怀着"我倒要看看你是什么gui"的心情打开了wiki. 结果第一个bug就是:字体大小与要求不符. wtf?!明明一样的好不好,找测

咏南中间件修正了一处BUG,调用中间件插件会报:非法访问

咏南中间件修正了一处BUG,调用中间件插件会报:非法访问将以下方法修改成如下的代码即可function TServerMethods1.GetSvrData(const accountNo, defineId: WideString; inParams: OleVariant): OleVariant;// 调用中间件的插件// defineId=3位插件编号+2位自定义编号var p: TfrmPlugBase; plugClass: string; ps: TPersistent;begin

(知识分享)软硬件调试九法:第九条规则 如果你不修复一个bug,它将永远 存在

1.查证问题确已被修复 如果遵循了“制造失败”这条规则,就知道如何验证你确实修复了问题.无论问题和修复看起来多么明显,你都无法保证修复是有效的,直到做了测试并验证. 2.查证确实你的修复措施解决了问题 如果你取消这个修复,系统再次出现失败,再应用这个修复,问题消失,才能够证明你确实修复了问题.这样做的原因是,在调试期间,往往会改变一些不属于修复的地方,有时这些改变会隐藏问题,如果没有意识到这一点,发现测试起作用了,就高高兴兴的回家了,因为你做的修复和问题消失毫无关系,因此修复方案到达客户后,可能

微信开发学习日记(五):weiphp开源框架的bug,公众号权限编辑问题

最近在研究weiphp,总体感觉还行,bug据说还挺多. 这不,我就遇到一个比较严重影响使用的.感觉不太应该出现这么严重的bug啊. weiphp的微信公众号等级,权限增加和编辑bug,看不到权限列表,只能看到"好人"和"环境"2个不正确的插件名称.[系统BUG] 用户权限无法正常显示问题描述:用户->公众号等级->编辑 出现好人与环境两个插件解决办法:后台新增加公众帐号等级错误地址http://****.com/Admin/PublicGroup/ad

墨菲定律:当你觉得一个地方可能有bug,那么这个地方就会有bug----顺带了解下Tomcat那少有人注意的localhost.log

一.问题概述 题目有点长,但应该值得后端java们了解下有点小坑的localhost.log,让我长话短说. 博主是搞java后端的.后台是很简单的spring mvc + spring框架. 今天测试一个Controller层的接口,但是断点一直进不来. 我做的改动也不大,新增了mqMsgFactoryUtils这个spring 托管的bean,(代码是接手别人的,所以看着原来的部分有点臃肿,就提炼了mqMsgFactoryUtils公共类 ,mqMsgFactoryUtils需要依赖bean

MS SQL 错误 :17883,严重度: 1,状态: 0

公司一台老旧的SQL SERVER 2000 数据库,一周内会出现若干次(一次或多次)CPU 持续100%,导致应用程序没有反应的情况,如下图所示: 错误信息如下所示:   数据库版本.补丁情况如下: Code Snippet SELECT SERVERPROPERTY('productversion')   AS ProductVersion , SERVERPROPERTY('productlevel')  AS ProductLevel  , SERVERPROPERTY('edition

客户被绑,蒙眼,惊问:“想干什么?” 对方不语,鞭笞之,客户求饶:“别打,要钱?” 又一鞭,“十万够不?” 又一鞭,“一百万?” 又一鞭。客户崩溃:“你们TMD到底要啥?” “要什么?...

1.  客户被绑,蒙眼,惊问:"想干什么?"     对方不语,鞭笞之,客户求饶:"别打,要钱?"     又一鞭,"十万够不?"     又一鞭,"一百万?"     又一鞭.客户崩溃:"你们TMD到底要啥?"     "要什么?我帮你做项目,写代码的时候也很想知道你TMD到底想要啥!" 2.   女神:你能让这个论坛的人都吵起来,我今晚就跟你走. 程序猿:PHP语言是最好的语言! 论