我想知道是什么意思
<modules runAllManagedModulesForAllRequests="true" />
Run Code Online (Sandbox Code Playgroud)
我使用的是IIS 7.5,我有一个简单的Web应用程序.我是否需要在web.config文件中编写此代码.我还为jquery ajax调用编写了几个http处理程序.我正在使用表单身份验证和asp.net 4.0.
如何确定我必须运行哪个模块以及哪个模块不运行?
我有一个WebApi控制器,其方法如下:
[HttpGet]
[AcceptVerbs("GET")]
public HttpResponseMessage Run(string reportName, int someId, string someText, DateTime asOfDate, string username)
Run Code Online (Sandbox Code Playgroud)
我有专门为此操作配置的自定义路由.当我将浏览器导航到Web服务时,一切正常,并执行相应的操作:
http://localhost:xxxx/ControllerName/Run/asdf/1/asdf/07-01-2012/user@domain.com
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用HttpClient以编程方式调用Web服务并执行"获取"时,我收到404错误.当username参数不是电子邮件地址时,我不会收到错误.例如,当用户名只是"用户"时,一切正常.以下是示例代码:
var url = "http://localhost:xxxx/ControllerName/Run/asdf/1/asdf/07-01-2012/user@domain.com"
var client = new System.Net.Http.HttpClient();
var response = client.Get(url);
//fails here with 404 error
response.EnsureSuccessStatusCode();
Run Code Online (Sandbox Code Playgroud)
我试过UrlEncoding电子邮件地址没有运气.任何建议表示赞赏.
我刚刚从AttributeRouting切换到WebApi 2.0 AttributeRouting,并且有一个控制器和动作定义如下:
public class InvitesController : ApiController
{
[Route("~/api/invites/{email}")]
[HttpGet]
[ResponseType(typeof(string))]
public IHttpActionResult InviteByEmail(string email)
{
return this.Ok(string.Empty);
}
}
Run Code Online (Sandbox Code Playgroud)
示例查询:
GET: http://localhost/api/invites/test@foo.com
Run Code Online (Sandbox Code Playgroud)
我收到的响应是200,内容为空(由于string.Empty).
这一切都很好 - 但我想将email属性更改为查询参数.所以我将控制器更新为:
public class InvitesController : ApiController
{
[Route("~/api/invites")]
[HttpGet]
[ResponseType(typeof(string))]
public IHttpActionResult InviteByEmail(string email)
{
return this.Ok(string.Empty);
}
}
Run Code Online (Sandbox Code Playgroud)
但现在在查询端点时:
GET: http://localhost/api/invites?email=test@foo.com
Run Code Online (Sandbox Code Playgroud)
我收到的回复是404:
{
"message": "No HTTP resource was found that matches the request URI 'http://localhost/api/invites?email=test@foo.com'.",
"messageDetail": "No route providing a controller name was found to match request URI 'http://localhost/api/invites?email=test@foo.com'"
}
Run Code Online (Sandbox Code Playgroud)
有人知道为什么它与参数交换到查询参数时的路由不匹配,而不是内联网址?
根据要求,WebApiConfig的定义如下: …