问题标签 [webhttpbinding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2871 浏览

wcf - 使用 webHTTPBinding 在 IIS 6 上托管 REST WCF 3.5 在 IIS 日志中给出 400“错误请求”和登录失败错误 1380

我正在学习 WCF,并使用 Visual Studio 2008 及其 Web 服务器在我的开发环境中运行以下代码。当我将 Web 服务发布到 IIS 6 时,所有请求都会导致 400“错误请求”错误。查看 IIS 日志,状态码是 400,win32-status 码是 1380。使用net helpmsg 1380,它告诉我 wind32 状态码的意思是“登录失败:在这台计算机上没有授予用户请求的登录类型”。但我正在使用webHTTPBinding的 REST,它不使用身份验证或安全方法。

在 IIS 中,我将应用程序设置为允许匿名,该应用程序设置为模拟“IUSER_<machine_name>”帐户。在应用程序池中,我将其设置为使用网络服务标识。两个用户都设置为写入访问临时文件夹以及 .net 框架文件夹。我已经设置了 WCF 跟踪,但日志是空白的。我正用头撞墙。有人可以帮忙吗?

web.config 的 System.ServiceModel 部分:

这是我的服务合同:

在浏览器中,我使用以下 URL 在我的开发环境中使用 VS2008 Web 服务器进行测试,它可以工作:

发布到 IIS 并使用以下 url 后,我得到了错误的请求页面:

我知道 url 应该是正确的,就好像我在 .svc 部分之后输入了一个错误的 url,我会得到一个未找到端点的错误,它正在按应有的方式工作。例如:

IIS 服务器盒安装了 .net 2、3.0 和 3.5。IIS Web 应用程序设置为使用 .net 2(将使用 .net 3.5)。我还运行了 serviceModelReg /i /x 以及 /ia 以确保 WCF 已安装和注册。关于“Bad Request”错误页面的问题在于它不是 IIS 错误页面,它的 HTML 格式类似于 WCF 错误页面,顶部有一个深蓝色条,白色标题为“ Request Error ”,然后是消息“ The服务器在处理请求时遇到错误。有关详细信息,请参阅服务器日志。 "

请帮忙。

0 投票
2 回答
1621 浏览

c# - 具有成员资格提供程序身份验证的 WCF WebHttpBinding

我有一个使用基本 HTTP 身份验证模式的 WebHttpBinding 服务,但是由于某些奇怪的原因,它会针对 Windows 帐户验证提供的用户名/密码,我认为我指定了 userNamePasswordValidationMode="MembershipProvider"。

我发现其他帖子也报告了这个问题,但没有给出这种情况的答案。

0 投票
4 回答
5312 浏览

wcf - WCF Web Api 与 WebHttpBinding

我是 WCF RESTFull 服务开发的新手,与新的 WCF Web API http://wcf.codeplex.com/相比,我正在寻找一些有用的信息以及关于使用 webHttpBinding 的经验反馈。

我正在寻找的是了解 webHttpBinding 的缺点以及为什么要使用新的 Web api,尤其是新的 API 解决了哪些问题。如果您可以向我指出一些比较它们的博客文章,或者只是谈论使用 webHttpBinding 时的问题,我将不胜感激。先感谢您。

0 投票
1 回答
4647 浏览

asp.net-mvc - 在 wcf 服务中设置 cookie

我有一个使用 wcf 休息服务的 asp mvc 应用程序(都在同一个盒子上)。对于身份验证调用,我正在尝试在 wcf 休息服务中设置 cookie。

客户端的代码 -

在 web 服务中,我只使用 FormsAuthentication 来设置 authcookie。

假设凭据在代码中是硬编码的 - 如果我实际导航到浏览器页面

(代码中的硬代码凭据)我可以看到正在设置身份验证 cookie。但是,如果我只是通过代码调用它(如上所示),则不会设置身份验证 cookie。

我在这里忽略了什么明显的东西吗?

0 投票
1 回答
602 浏览

wcf - WCF 可靠性问题

试图测试我的 wcf 服务的可靠性。我正在从客户端循环调用 wcf 服务。wcf 休息服务 (webhttpbinding) 进行一些数据处理并将记录插入数据库。整个操作在一个事务中完成。

如果我将 InstanceContextMode 设置为 PerCall,我发现在大约 60 条消息中(从循环内部调用服务的 60 倍)只有 40 条消息通过数据库。没有错误没有例外。消息只是被丢弃。

如果我将 InstanceContextMode 设置为 Single,那么我会看到所有消息都到达数据库。InstanceContextMode.Percall 是有损的预期行为吗?另外,我没有设置并发。任何澄清都会非常有帮助。添加了代码。使用 MySQL 作为数据库...

编辑我的错 - 我刚刚注意到我在服务器端遇到异常 - {“尝试获取锁定时发现死锁;尝试重新启动事务”}

这是因为在事务正在进行时,在相同记录上调用了另一个事务。如果它失败一次,则通过重新启动事务来修复它。

服务

存储库类构造函数初始化对象上下文

代码 - 服务调用

客户端只是循环调用服务

0 投票
0 回答
963 浏览

wcf - 将 cookie 传递给 wcf 服务

我有一堆期望 auth cookie 的 wcf webhttp (rest) 服务。问题是 - 如何将 formsauth 票证传递给 wcf 服务?流动身份验证适用于通过浏览器获取请求(应该如此),但我不确定如何在使用 httpclient 或 webchannelfactory 的调用期间设置 cookie。至此,身份验证完成,cookie 可用。在通过 HttpClient 调用服务时,我不确定在哪里插入 cookie。

我还尝试按照以下网址使用 webchannelfactory - http://zamd.net/2009/03/05/flowing-forms-authentication-cookie-to-wcf/

但是,var identity = Thread.CurrentPrincipal.Identity as ClientFormsIdentity;即使 Thread.CurrentPrincipal.Identity 是有效的 FormsIdentity,也会返回 null。任何建议都会很有帮助。

0 投票
0 回答
925 浏览

wcf - WebHttpBinding 身份验证被忽略

我正在尝试使用带有 REST 服务的基本 HTTP 身份验证,但调试代理显示根本没有发送身份验证标头,它们被忽略了!这是我的代码:

IMyService 代理 = factory.CreateChannel();

proxy.SomeMethod();

...

HTTP 请求未经客户端身份验证方案“基本”授权。从服务器收到的身份验证标头是“”。

服务器堆栈跟踪:在 System.ServiceModel.Channels.HttpChannelUtilities.ValidateRequestReplyResponse(HttpWebRequest 请求,HttpWebResponse 响应,HttpChannelFactory 工厂,WebException responseException 的 System.ServiceModel.Channels.HttpChannelUtilities.ValidateAuthentication(HttpWebRequest 请求,HttpWebResponse 响应,WebException responseException,HttpChannelFactory 工厂), ChannelBinding channelBinding) at System.ServiceModel.Channels.HttpChannelFactory.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout) at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout) at System.ServiceModel.Dispatcher.RequestChannelBinder.Request(Message消息,TimeSpan 超时)在 System.ServiceModel.Channels.ServiceChannel.Call(字符串操作,布尔单向,System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs) at System.ServiceModel 的 ProxyOperationRuntime 操作,Object[] 输入,Object[] 输出,TimeSpan 超时) .Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation) at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)调用(IMessage 消息)调用(IMessage 消息)

在 [0] 处重新抛出异常:在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 处的 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg) ...

0 投票
1 回答
352 浏览

wcf - WCF webHttpBinding 发布到 apache 服务

我正在尝试从 WCF 客户端与 Apache 服务进行通信

我已经这样设置了客户端:

我的合同看起来像

不知道接收端使用什么框架,但用户和操作变量显示为 get 变量,根本看不到 json 有效负载。

我用 WCF 服务做了一些本地测试,它工作正常。

有什么想法有什么问题吗?

0 投票
1 回答
2061 浏览

c# - .NET 4.0 中的 WebHttpBinding?

引用 .NET 4.0 的 System.ServiceModel 和 System.ServiceModel.Web 库时,我无法实例化 WebHttpBinding 类。我可以在引用 3.5 库时实例化该类。文档说 4.0 支持 WebHttpBinding 那么我做错了什么?

当我点击 CTRL + . 在 WebHttpBinding 上,它没有找到它的命名空间。

http://msdn.microsoft.com/en-us/library/system.servicemodel.webhttpbinding.aspx

0 投票
1 回答
1463 浏览

wcf - DataContractJsonSerializer 和 maxItemsInObjectGraph

如何为 DataContractJsonSerializer 设置 maxItemsInObjectGraph?

我收到一条错误消息"Maximum number of items that can be serialized or deserialized in an object graph is '65536'. Change the object graph or increase the MaxItemsInObjectGraph quota."

65536这个数字是从哪里来的。DataContractJsonSerializer的文档说默认值为 Int32.MaxValue。

我试图在行为配置中设置它:

但我收到如下错误:"Invalid element in configuration. The extension name 'dataContractJsonSerializer' is not registered in the collection at system.serviceModel/extensions/behaviorExtensions."

将行为更改<dataContractSerializer maxItemsInObjectGraph="500000"/>为没有错误但不会更改值(这不足为奇,因为我没有使用 dataContractSerializer)

客户端是使用 ChannelFactory 创建的,因此我无法使用此处描述的 ServiceBehavior 属性