首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WCF代理使用Post即使指定了WebGet属性(仅在从另一个WCF服务调用时) - 导致405错误

WCF代理使用Post即使指定了WebGet属性(仅在从另一个WCF服务调用时) - 导致405错误。

首先,需要了解WCF(Windows Communication Foundation)是一种用于构建分布式应用程序的微软技术。它提供了一种统一的编程模型,用于在不同的计算机之间进行通信。WCF支持多种传输协议和编码方式,包括HTTP、TCP、MSMQ等。

在WCF中,WebGet和WebInvoke是用于定义WCF服务操作的属性。WebGet用于指定该操作使用HTTP GET方法进行调用,而WebInvoke用于指定该操作使用HTTP POST方法进行调用。根据提供的问答内容,我们可以推断出,问题出现在从另一个WCF服务调用时,使用了Post方法,但却导致了405错误。

405错误表示“方法不允许”。这意味着服务器不支持使用指定的HTTP方法进行请求。在这种情况下,可能有以下几个原因导致了错误:

  1. WCF服务配置错误:检查WCF服务的配置文件,确保已正确配置终结点和操作。确保在服务契约中正确使用了WebGet和WebInvoke属性,并指定了正确的HTTP方法。
  2. 客户端调用方式错误:检查客户端代码,确保使用了正确的调用方式。如果使用了代理类进行调用,确保代理类的方法与服务契约中的操作名称一致,并使用了正确的调用方式。
  3. 安全性限制:某些安全性设置可能会限制使用特定的HTTP方法。检查WCF服务的安全性配置,确保允许使用所需的HTTP方法。

推荐的腾讯云相关产品和产品介绍链接地址:

腾讯云提供了多种云计算相关产品,包括云服务器、云数据库、云存储等。您可以通过以下链接了解更多信息:

  1. 腾讯云云服务器(CVM):提供灵活可扩展的云服务器实例,支持多种操作系统和应用场景。了解更多:https://cloud.tencent.com/product/cvm
  2. 腾讯云云数据库MySQL版:提供高性能、可扩展的云数据库服务,适用于各种规模的应用程序。了解更多:https://cloud.tencent.com/product/cdb_mysql
  3. 腾讯云对象存储(COS):提供安全可靠的云存储服务,适用于存储和管理各种类型的数据。了解更多:https://cloud.tencent.com/product/cos

请注意,以上链接仅为示例,您可以根据具体需求和场景选择适合的腾讯云产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Asp.net web api 知多少

它在现有WCF消息管道之上,构建简单的,基于非SOAP的HTTP服务。 它不像WCF REST service那样需要配置乏味的配置文件。 使用WEB API创建服务十分简单。...WCF Rest 将WCF 作为 WCF Rest 服务使用,您必须启用 webHttpBindings....支持HTTP GET和POST,分别对应使用 [WebGet] 和 [WebInvoke] 特性。 如果需要支持其他HTTP动词,你需要在.svc文件中针对需要支持的HTTP动词做一些配置。...使用WebGet通过参数传递数据,需要配置。同时,UriTemplate 必须指定。 支持XML, JSON 和 ATOM 数据格式。...当您想创建一个可以使用快速传输通道的服务时,请选择WCF,如TCP,命名管道,或者甚至UDP(在WCF 4.5),并且当所有其他通道不可用时能够支持HTTP传输信道。

4.8K50

入门:构建简单的Web API

action = "Index", id = UrlParameter.Optional } // Parameter defaults ); } MapServiceRoute需要一个泛型参数指定服务...服务器驱动协商是有优点的,当从可行的表现形式里进行选择的算法对用户代理进行描述是比较困难的时候,或者当服务器期望发送“最好的猜测”给客户端而只通过一个响应(以避免后续请求的回路(一个请求会返回一个响应)...为了改善服务器的猜测,用户代理应该包含请求头域(Accept,Accept-Language,Accept-Encoding,等等),这些头域能描述它对响应的喜好。...查询使用IQueryable 接口,服务端并没有去查询所有的数据,发送过滤和排序到服务端。...9、WCF Web API也提供一个WCF Web Test Client用于测试WCF Web API,通过配置启用,在RegisterRoutes方法里创建HttpConfiguration 实例

3.1K90
  • Mono 3.0.2 基于双工通信的WCF应用 Demo

    客户端调用CalculatorService正常的服务调用,那么在服务执行过程中借助于客户端在服务用时提供的回对象对客户端的操作进行回,从本质上讲是另外一种形式的服务调用。...回契约的类型通过ServiceContractAttribute特性的CallbackContract属性进行指定。 上面代码中服务契约ICalculator的回契约ICallback定义如下。...WSDualHttpBinding实际上创建了两个通道,一个用于客户端向服务端的通信,而另一个则用于服务端到客户端的通信,从而间接地提供双工通信的实现。...具体可以参看 WCF置于Mono下遇到的一些问题 在MONO下实现WCF所遇到的问题 步骤四:实现回契约 在客户端程序为回契约提供实现,在下面的代码中CalculateCallback实现契约...>的功能都是一个服务代理对象的创建工厂,不过DuplexChannelFactory专门用于基于双工通信的服务代理的创建。

    77160

    WCF技术剖析之二十三:服务实例(Service Instance)生命周期如何控制

    说到实例上下文,相信读者不会感到陌生,因为在进行WCF双向(Duplex)通信的时候,我们通过实例上下文来封装回对象。在WCF中,实例上下文不仅仅用于对回对象的封装,也用于对真正服务实例的封装。...在服务操作执行完毕,实例上下文对象和被封装的服务实例被回收。图2揭示在单调模式下实例上下文、服务实例和服务代理之间的关联。 ?...图3 会话模式下服务代理服务实例上下文之间的关联 3、单例(Single)模式 单例模式意味着WCF为每个服务维护一个并且维护一个服务实例上下文。...所以,WCF实例管理通过服务行为体现,不同的实例上下文模式通过ServiceBehaviorAttribute特性指定。...在ServiceBehaviorAttribute中,通过设置InstanceContextMode属性指定不同的服务实例上下文模式。

    98390

    2019-1-23-wcf入门(2)

    然而vs给出了错误提示,说明我们需要添加一个额外的库System.ServiceModel ? 我们添加了对应的库后和using之后,就可以正常编译。 ?...这个客户端继承ClientBase的抽象类,并且实现IHelloWorld接口,实际上是搭建了服务的一个代理。 而在使用时在调用IHelloWorld接口方法即调用服务的实现。...当然除此之外我们还需要指定通信方式和服务地址,所以我们需要创建一个构造函数,对这些配置进行传入。(当然,也可以通过配置文件等方式进行设置) ?...好,现在我们可以启动这个客户端了,这里需要指定下绑定方式为TCP,服务地址端口要正确。 ? 最后我们看下效果 ? 我们看到启动服务和客户端,客户端调用SayHello方法,服务端成功响应。...The Argument for WCF Hosting in .NET Core ---- 本文会经常更新,请阅读原文: https://xinyuehtx.github.io/post/wcf%E5%

    41120

    我的WCF之旅(3):在WCF中实现双工通信

    契约的类型通过ServiceContractAttribute特性的CallbackContract属性进行指定。 上面代码中服务契约ICalculator的回契约ICallback定义如下。...WSDualHttpBinding实际上创建了两个通道,一个用于客户端向服务端的通信,而另一个则用于服务端到客户端的通信,从而间接地提供双工通信的实现。...由于服务端的回操作也会使用该TCP连接,如果在回操作尚未执行完毕就试图关闭网络连接,将会导致无法正常执行。...图4 关闭服务代理导致的ProtocolException异常 问题2:回导致的死锁 第2个问题是关于并发的问题,我们先看表现出来的现象,再分析原因并找出解决方案。...WCF通过加锁机制保证服务对象的独占性使用,也就是说在服务执行开始会对服务对象加锁,该锁在服务操作结束之后释放。 回到我们的例子,在Add操作执行过程中,服务端回客户端操作进行运算结果的显示工作。

    1.1K100

    菜菜从零学习WCF二(设计和实现服务协定)

    定义服务协定   在类或接口上使用ServiceContractAttribute属性标记 定义服务操作   在方法上使用OperationContractAttribute属性对其进行标记 参数和返回值...  --每个操作都有一个返回值和一个参数,即使他们为void,可以使用局部方法将对对象的引用从一个对象传递到另一个对象,但与局部方法不同的是,服务操作不会传递对对象的引用。...--缺点:如果执行操作需要很长的时间,则会降低客户端性能和响应力     --优点:响应消息中可返回SOAP错误,这表名可能在通信或处理中发生了一些与服务有关的错误状况   单向模式 如果WCF服务应用程序的客户端不必等待操作完成...,并且不处理SOAP错误,则该操作可以指定单向消息模式。     ...WSDualHttpBinding实际上创建了两个通道,一个用于客户端向服务端的通信,而另一个则用于服务端到客户端的通信,从而间接地提供双工通信的实现。

    87920

    2019-1-25-wcf入门(5)

    ) 注意我们通过设置 ServiceContract的CallbackContract指定服务的回接口 ?...在服务端实现上我们额外通过OperationContext获取定义为IDuplexCallback接口的通道。 通过这个通道(客户端的透明代理),在服务端就可以调用客户端的方法 ?...在客户端的使用时,我们需要将回接口的实现注入到InstanceContext中,并且传入客户端的构造函数 ? 运行程序,我们发现,客户端向服务端发送了消息,服务端也向客户端发送了消息。...实现双向的通信 小结 我们研究WCF服务的双工模式,其特点有 可以实现双向通信 协定的每个方法都可以通过OperationContract指定为单向或者请求答复模式 双工协定要求Binding支持双工模式...//xinyuehtx.github.io/post/wcf%E5%85%A5%E9%97%A8-5.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

    32020

    一个简单的REST服务实例

    微软在WCF 3.5中就通过提供基于Web HTTP的编程模式使我们很容易地创建基于REST的服务WCF 4.0中对此进行了较大的改进。...接下来我们通过自我寄宿的方式对上面定义的EmployeesService服务进行寄宿,下面是相应的配置。我们为寄宿的服务添加了唯一一个终结点,并简单地指定其ABC三要素。...之前我们总是使用基于服务类型创建的ServiceHost进行服务寄宿,在这里我们使用的是ServiceHost它的子类WebServiceHost。...如果在请求地址中指定一个不存在的ID(比如http://127.0.0.1:3721/employees/003),由于Get方法中指定回复状态为NotFound,我们会得到类似于访问资源不存在的错误信息...上面我们演示通过浏览器以HTTP-GET方式请求操作地址的方式从而直接将返回结果呈现出来,现在我们来演示如何使用通过ChannelFactory创建的服务代理进行服务调用。

    71370

    WCF并发(Concurrency)的本质:同一个服务实例上下文(InstanceContext)同时处理多个服务调用请求

    WCF提供三种不同的实例上下模式(Per-Call、Per-Session和Single)实现不同的服务实例上下文提供机制。...所以,WCF并发框架体系解决的是如何有效地处理被分发到同一个服务实例上下文的多个服务调用请求,这些并行的调用请求可能来自不同的客户端(服务代理),也可能相同的客户端。...在双向通信的场景中,如果多个服务端或者同一个客户端的多个并发的服务调用操作所指定的回实例上下文(即封装回操作的InstanceContext对象),就可能出现针对同一个InstanceContext...WCF采用与正常服务调用相同的机制来处理并发回,实际上WCF采用几乎一样的机制来实现正常的服务调用和回。...与通过将ServiceBehaviorAttribute特性应用到服务类型并指定采用的并发模式相类似,回采用的并发模式通过应用在回调类型上的CallbackBehaviorAttribute特性来指定

    1.1K70

    WCF中操作的分界于调用顺序和会话的释放操作分界实例停止

    操作分界 在WCF操作契约的设计中,有时会有一些调用顺序的业务,有的操作不能最先调用,有的操作必须最后调用,比如在从一个箱子里拿出一件东西的时候,必须先要执行打开箱子的操作,而关上箱子的操作应该在一切工作完成之后再被执行...会异步的释放对象并且关闭会话,客户端将不能再通过当前代理调用服务中的操作。...---- 实例停止 在服务的生命周期中,上下文是一直伴随着服务实例的创建于释放的整个过程的,然后处于某些目的,WCF也提供分离两者的选项,允许服务实例被单独的停止。...,WCF仍然提供一个直接停止服务实例的方法,以满足在以上设置中都没有找到一个完美的适用于您的需求的解决方案。...然后再非不得已的情况下,应该尽量不要使用它,因为它破坏了业务逻辑和服务本身生命周期的分离。

    79560

    UriTemplate、UriTemplateTable与WebHttpDispatchOperationSelector

    对于WCF来说,服务调用请求的URI映射为某个具体的操作,所以服务端需要解决的是如何根据请求URI选择出对应的操作。...属性BaseAddress 表示基地址,可以在构造函数中初始化,也可以直接通过属性赋值的方式指定。...如果该参数为False,多个结构等效UriTemplate的存在会导致异常的发生。...对于针对SOAP的服务调用来说,我们一般通过其报头作为操作选择的依据,而对于REST服务来说,请求的地址决定对应的操作。...WCF服务端运行时通过DispatchOperationSelector根据请求消息进行操作的选择,而Web HTTP编程模型通过自定义的DispatchOperationSelector实现最终的操作选择

    1.1K60

    菜菜从零学习WCF十(序列化)

    2.指定已知类型   如果在进行序列化的类型中涉及多态性并且尚未使用KnowTypeAttribute属性或一些其他机制进行处理,则必须使用KnownTypes参数将可能的已知类型的列表传递给序列化程序的构造函数...每一段数据只进行一次序列化并获得一个ID号,后续使用导致引用已序列化的数据。...Web服务同样也使用该序列化引擎。...当对出现在消息中的XML的精确控制很重要,而Web服务描述语言(WSDL)文档不可用时,例如,在使用必须遵循某个已标准化且已发布的架构(与DataContractSerializer不兼容)的类型来创建服务时...如果在选择XmlSerializer类的服务协定中不慎使用了该类型,则将序列化creitCardNumber成员,这可能并不是想要的结果 关于XmlSerializer序列化实例,有服务,有客户端调用代码示例

    1.1K30

    快速入门系列--WCF--01基础概念

    看上去有一些WCF使用经验,实则不然,比如对安全、分布式事务、可靠会话等主题仍然接触甚少,因而决定重新回顾学习一下相关知识,尤其是对WCF框架的理解(已于2015年开源,可下载源码,https://...MSMQ(Message Queuing):MSMQ通过异步通信的方式,解耦服务的提供者和调用者,为系统提供可观的伸缩性和可用性,并支持可靠信息传输、错误处理和对事务的支持。...此外,除了使用绝对地址来指定某个服务的终结点地址外,还可以通过"基地址+相对地址"的方式,其配置形式如下,需要注意一种类型的协议只能有一个基地址,并且当一个服务实现类同时实现多个服务接口时,该终结点地址可以共享...一般来说,企业内部的服务推荐使用RPC类型的服务,如NetTcpBinding,而对外服务推荐使用WSHttpBinding,当然实际项目中,对外服务一般不会使用WCF框架,而是使用Restful风格的...异步服务代理的创建,可以通过在添加服务用时通过高级选项添加生成异步操作选项,之后可以通过使用BeginXX/EndXX方法、回调和事件注册等方式使用异步服务代理类。

    1.1K100

    WCF后续之旅(11): 关于并发、回的线程关联性(Thread Affinity)

    二、是什么导致TimeoutException? 我们现在来分析是什么导致TimeoutException的抛出。...让Callback的执行不必绑定到UI线程 三、解决方案一:通过异步调用或者One-way回 为了简单起见,我们通过ThreadPool实现异步回: 1: public void Add(double...SynchonizationContext提供两个主要的API将操作和对应的Thread关联:Post和Send。...关于WCF对线程关联性的控制,可以通过ServiceBehavior或者CallbackBehavior的UseSynchronizationContext属性进行设定,该属性默认为true,这正式WCF...六、Service Hosting的线程关联性 我们花了很多的精力介绍WCF Duplex通信中Callback操作的线程关联性问题,实际上我们使用到更多的还是service操作的线程关联性问题。

    857110

    WCF后续之旅(11): 关于并发、回的线程关联性(Thread Affinity)

    二、是什么导致TimeoutException? 我们现在来分析是什么导致TimeoutException的抛出。...让Callback的执行不必绑定到UI线程 三、解决方案一:通过异步调用或者One-way回 为了简单起见,我们通过ThreadPool实现异步回: 1: public void Add(double...SynchonizationContext提供两个主要的API将操作和对应的Thread关联:Post和Send。...关于WCF对线程关联性的控制,可以通过ServiceBehavior或者CallbackBehavior的UseSynchronizationContext属性进行设定,该属性默认为true,这正式WCF...六、Service Hosting的线程关联性 我们花了很多的精力介绍WCF Duplex通信中Callback操作的线程关联性问题,实际上我们使用到更多的还是service操作的线程关联性问题。

    1K80

    2019-1-31-wcf入门(11)

    2019-1-30-wcf入门(10) - huangtengxiao中介绍wpf提供的2种错误协定回馈异常的方式。...那么当我们抛出异常时,服务端已经不知道该把异常信息回复给谁。 所以对于单向模式,错误协定无法回馈错误信息。 如何回馈单向模式异常 还记得我们解决单向模式返回值问题的方案么?...没错就是2019-1-25-wcf入门(5) - huangtengxiao中提到的双工模式 说白,就是添加一个传递异常信息的回接口,在发生异常时向这个回接口发送异常信息 ?...,其特点有 利用双工在业务层实现 有双工模式的限制 能处理单向操作 参考链接: 如何:在服务协定中声明错误 - Microsoft Docs 定义和指定错误 - Microsoft Docs 在协定和服务指定和处理错误.../post/wcf%E5%85%A5%E9%97%A8-11.html ,以避免陈旧错误知识的误导,同时有更好的阅读体验。

    31620

    WCF中关于可靠会话的BUG!!

    WCF的可靠会话编程有一定了解的人应该知道,我们可以使用 DeliveryRequirementsAttribute 可以指示WCF确认绑定提供服务或客户端实现所需的功能。...如果在从应用程序配置文件加载服务说明或在代码中以编程方式生成服务说明时检测到 DeliveryRequirementsAttribute 属性,则 WCF 会验证所配置的绑定,并支持该属性指定的所有功能...使用 DeliveryRequirementsAttribute 可以让WCF 确认是否满足下列要求: QueuedDeliveryRequirements 属性指定绑定必须满足的队列要求。...指定 NotAllowed 的 QueuedDeliveryRequirements 值。...所以,我们可以说由于WCF资源字符串的错误定义或者错误使用导致这个Bug的产生。 ?

    685110

    WCF系列教程之WCF服务协定

    关联的接口与Web服务描述语言(WSDL)元素松散相关,所以服务协定也具备以下两个功能: (1)、可用于服务端以指定终结点(可以是配置文件,也可以是硬编码)的方式,来控制其向其他客户端暴露的内容...(2)、客户端可以通过它来于服务端进行通信 3、定义完了服务协定层(服务接口层),就可以实现当前协定层,实现服务协定层后并将其与WCF 绑定和 EndpointAddress 对象一起使用时,此服务协定将公开以供客户端使用...默认值是服务实现类的名称。 (4)、ProtectionLevel:使用 ProtectionLevel 属性指定协定绑定对公开协定的终结点要求的加密和/或数字签名的程度。...在此设置的值是为包括错误在内的所有操作消息提供的默认值。 (5)、SessionMode:获取或设置是否允许、不允许或要求会话。使用 SessionMode 属性来要求在终结点之间支持会话的绑定。...如果您的服务支持信道会话,则可以使用 InstanceContextMode 属性指定您的服务协定实现实例与信道会话实例之间的关系。 如果绑定不支持会话,则会引发异常。

    85870
    领券