Tag: rest

WCF REST WebChannelFactory客户端是否支持使用重定向的REST服务?

如果您有一个使用HTTP 301重定向的RESTful Web服务来发送请求,例如: HTTP://服务器/客户/名称=约翰 到url HTTP://服务器/客户/ 324 (由与此问题中的服务类似的服务创建。 ) 可以使用WebChannelFactory和ServiceContract来使用这些类型的服务吗? 如果是这样,怎么样?

WCF 4rest获取请求的IP?

嘿,你如何得到提出请求的人的IP地址,如下所示: [ServiceContract] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] [ServiceBehavior(InstanceContextMode = InstanceContextMode.PerCall)] public partial class UsersService { [WebInvoke(UriTemplate = “”, Method = “PUT”)] public User AddNewUser(User newUser) { // code goes here including GETTING AN IP?? } 谢谢!

简洁轻量的API:.NET中的REST + JSON

简介:我需要知道.NET世界中是否存在REST + JSON的轻量级实现,它不使用WCF。 如果没有,我正在寻找一些有兴趣成立开源项目合资企业的人。 我不了解你,但是当它出现时我是WCF的忠实粉丝,我赞扬它的模块化和可扩展性的设计。 然而,随着我越来越频繁地使用它,基本问题开始暴露到我现在觉得它必须被废弃和重新设计的程度。 这似乎是一个很大的声明,但我相信这些是主要问题: 首先,WCF在内部使用SOAP作为消息,这意味着如果传输消息不是SOAP,我们就会为每次调用产生转换回SOAP的成本。 这是昂贵且耗时的。 转换传出消息需要“插入”消息检查器并“窃取”消息。 顾名思义,这是一个检查员(必须用于检查和记录),所以使用它来更改消息坦白说是一个黑客。 它是根据WSDL设计的,自2001年以来世界发生了很大的变化。实现REST也需要窃取消息。 WCF是根据WSDL设计的,而不是REST。 通道堆栈不必要地很重。 主堆栈是协议不可知的。 这不是一个优势,它是一个根本性的缺陷。 如您所知,稍后添加了对大量协议级别信息的访问,因为无法实现某些重要的用户方案。 例如,TCP中的客户端IP地址无法访问并在以后添加(现在可以使用perationContext.Current.IncomingMessageProperties [RemoteEndpointMessageProperty.Name]访问) 与其他平台的互操作性可能是一个问题。 现在看来很多设计正朝着JSON和REST的简单化方向发展。 我只是喜欢他们的简约,我可以看到我的洗衣机在5到10年内消耗JSON并提供REST服务! 我相信他们在.NET中的实现是一个黑客攻击,我们非常需要一个非常轻量级和简单的框架(因为它们简单且重量轻)来在IIS内部和外部托管REST + JSON服务。 我希望这样的框架存在,但如果没有,我真的很想与一些志同道合的人一起去做些什么。 所以你怎么看? 这样的框架是否存在? 如果没有,有人有兴趣吗?

Fiddler – ReadResponse失败:服务器未返回此请求的响应

这是我在几次处理RESTful Web服务后第一次遇到这种错误。 我发现很难找出错误的原因,希望你能帮助我。 我有登录服务的这个属性 [WebGet(UriTemplate = “Login?username={username}&password={password}&ip={ip}”, ResponseFormat = WebMessageFormat.Json)] 使用fiddler来使用该服务: GET http:// localhost:3445 / Authenticate / Login?username = jsm&password = a&ip = 1 提琴手回应: [Fiddler] ReadResponse() failed: The server did not return a response for this request. 我不确定它是否由Content-type: application/json引起,因为当我尝试将其更改为xml时: [WebGet(UriTemplate = “Login?username={username}&password={password}&ip={ip}”, ResponseFormat = WebMessageFormat.Xml)] 它给了我这个结果: 有点奇怪。 我做错了什么? 我必须返回json对象..谢谢!

并非WCF数据协定中的所有参数都通过Web服务调用

在创建WCF Rest服务时,我注意到我的Web服务中的所有参数都没有进入我的实现。 这是界面: [ServiceContract(Namespace=”http://example.com/recordservice”)] public interface IBosleySchedulingServiceImpl { [OperationContract] [WebInvoke(UriTemplate = “Record/Create”, RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml, BodyStyle = WebMessageBodyStyle.Bare, Method = “POST”)] string CreateRecord(Record record); } [DataContract(Namespace=”http://example.com/recordservice”)] public class Appointment { [DataMember] public int ResponseType { get; set; } [DataMember] public int ServiceType { get; set; } [DataMember] public string ContactId { get; […]

如何向IIS中的Web api应用程序授予写入权限?

我只是在IIS服务器上有一个web api应用程序,只需在C:\ FileStorage \ test.txt上写入文本文件,但是当我调用这个webservice时,我得到内部500错误,在扩展错误后,我得到以下错误,如何在IIS服务器上授予对此Web服务的写访问权限? “ExceptionMessage”: “Access to the path ‘C:\\FileStorage\\test.txt’ is denied.”, “ExceptionType”: “System.UnauthorizedAccessException”, “StackTrace”: ” at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)\r\n at

是否有可以与Portable Class Libraries一起使用的REST库?

我正在开发一个需要发出REST请求的可移植类库,我正在寻找像Restsharp或EasyHttp这样的东西。 不幸的是,这些目前都不适用于PCL。 如果看到使用基本身份validation执行发布请求的示例,也会很高兴。 如果什么都没有,有没有人有一个例子,说明如何使用基本身份validation进行发布请求?

WCF REST未异步处理

我们目前正在IIS中为我们的站点实现一个新的WCF REST服务,在许多页面上,我们可能会异步使用JQuery进行一些AJAX调用。 问题是似乎WCF(在服务器端)同步执行。 在页面加载时,我们对3种不同的方法进行3次单独调用。 使用日志记录,我可以看到它们都在大约5ms内相互访问global.asax文件。 从那里,日志记录显示按退出global.asax的顺序执行的所有操作(不一定是我们通过javascript从页面调用的顺序)。 我希望每次调用都能收到自己的线程并单独返回。 即使使用调试器附加,我也可以看到它不会执行下一个方法,直到我逐步执行当前方法。 以下是我为实现使用异步模型而实现的三种方法的操作合同。 [OperationContract(AsyncPattern = true)] [WebInvoke( Method = “POST” , UriTemplate = “/ListUserPreferences” , BodyStyle = WebMessageBodyStyle.Wrapped , ResponseFormat = WebMessageFormat.Json , RequestFormat = WebMessageFormat.Json )] IAsyncResult BeginListUserPreferences(AsyncCallback callback, object state); Result<List<Data.EnumerationItem>> EndListUserPreferences(IAsyncResult asyncResult); [OperationContract(Name = “GetUserSecure”, AsyncPattern = true)] [WebInvoke( Method = “POST” , UriTemplate = “/GetUser” […]

ASP.NET Web API获取子列表(分层资源)

我有以下rest架构,我想使用ASP.NET Web Api实现: http://mydomain/api/students http://mydomain/api/students/s123 http://mydomain/api/students/s123/classes http://mydomain/api/students/s123/classes/c456 我使用ApiController和以下两种方法使前两个链接正常工作: public class StudentsController : ApiController { // GET api/students public IEnumerable GetStudents() { } // GET api/students/5 public IEnumerable GetStudent(string id) { } } 在同一个控制器中,(或者我需要一个名为ClassesController的不同控制器?),我如何实现最后两个链接? 另外,“类”部分的路由是什么样的(如果需要)? 这是我的WebApiConfig(我想保持动态,而不是硬编码到/ classes的路径,如果可能的话: config.Routes.MapHttpRoute( name: “DefaultApi”, routeTemplate: “api/{controller}/{id}”, defaults: new { id = RouteParameter.Optional } ); // EDIT – I’m getting 404’s […]

ServiceStack REST服务中的自定义exception处理

我有一个ServiceStack REST服务,我需要实现自定义error handling。 我已经能够通过将AppHostBase.ServiceExceptionHandler设置为自定义函数来自定义服务错误。 但是,对于其他类型的错误,例如validation错误,这不起作用。 我怎样才能涵盖所有案件? 换句话说,我正在努力实现两件事: 为可能弹出的每种exception设置我自己的HTTP状态代码,包括非服务错误(validation) 为每种错误类型返回我自己的自定义错误对象(不是默认的ResponseStatus) 我将如何实现这一目标?