相关疑难解决方法(0)

你什么时候使用POST,什么时候使用GET?

根据我的收集,有三类:

  1. 切勿使用GET和使用POST
  2. 切勿使用POST和使用GET
  3. 你使用哪一个并不重要.

假设这三个案件我是否正确?如果是这样,每个案例的一些例子是什么?

http-get http-post

327
推荐指数
11
解决办法
15万
查看次数

URL中的点导致404使用ASP.NET mvc和IIS

我有一个项目,要求我的URL在路径中有点.例如,我可能有一个URL,例如www.example.com/people/michael.phelps

带点的网址生成404.我的路由很好.如果我通过michaelphelps,没有圆点,那么一切正常.如果我添加点我得到404错误.示例站点在带有IIS8 Express的Windows 7上运行.URLScan未运行.

我尝试将以下内容添加到我的web.config中:

<security>
  <requestFiltering allowDoubleEscaping="true"/>
</security>
Run Code Online (Sandbox Code Playgroud)

不幸的是,没有什么区别.我刚收到404.0 Not Found错误.

这是一个MVC4项目,但我不认为这是相关的.我的路由工作正常,我期望的参数在那里,直到它们包含一个点.

我需要配置什么才能在网址中加点?

iis asp.net-mvc iis-7 iis-express iis-8

298
推荐指数
7
解决办法
9万
查看次数

使用ASP.NET MVC使用多个参数进行路由

我们公司正在为我们的产品开发API,我们正在考虑使用ASP.NET MVC.在设计我们的API时,我们决定使用下面的调用来让用户以XML格式从API请求信息:

http://ws.audioscrobbler.com/2.0/?method=artist.getimages&artist=cher&api_key=b25b959554ed76058ac220b7b2e0a026

如您所见,传递了多个参数(即artistapi_key).在ASP.NET MVC,artist将是controller,getImages在行动,但我会如何将多个参数传递给动作?

这甚至可以使用上面的格式吗?

.net c# asp.net-mvc routing

133
推荐指数
3
解决办法
27万
查看次数

<modules runAllManagedModulesForAllRequests ="true"/>含义

我想知道是什么意思

<modules runAllManagedModulesForAllRequests="true" />
Run Code Online (Sandbox Code Playgroud)

我使用的是IIS 7.5,我有一个简单的Web应用程序.我是否需要在web.config文件中编写此代码.我还为jquery ajax调用编写了几个http处理程序.我正在使用表单身份验证和asp.net 4.0.

如何确定我必须运行哪个模块以及哪个模块不运行?

asp.net web-config

131
推荐指数
1
解决办法
14万
查看次数

Web应用程序2中的DefaultInlineConstraintResolver错误

我正在使用Web API 2,当我在本地方框上使用IIS 7.5向我的API方法发送POST时,我收到以下错误.

The inline constraint resolver of type 'DefaultInlineConstraintResolver' was unable to resolve the following inline constraint: 'string'.

Line 21: GlobalConfiguration.Configuration.EnsureInitialized();
Run Code Online (Sandbox Code Playgroud)

我的API都不能使用IIS.但是,我能够使用IIS Express在Visual Studio中运行我的API项目并成功对我的登录API进行POST,但是当我尝试向另一个API调用发出GET请求时,我得到约束解析器错误.

为了解决这个问题,我在Visual Studio中创建了一个全新的Web API 2项目,并开始一次一个地将现有API导入到新项目中并运行它们以确保它们正常工作.在这个新项目中使用IIS Express,我得到了与现有API项目相同的结果.

我在这里错过了什么?即使有一个全新的项目,我也无法在没有遇到这个约束解析器问题的情况下发出GET请求.

c# asp.net api iis asp.net-web-api

131
推荐指数
3
解决办法
5万
查看次数

无法将HttpHandler映射到"path/*"通配符映射

所以我一直在尝试将http模块映射到MVC3站点的子路径.它应该很简单,因为我理解它,但它没有工作.模块设置如下:

<handlers>
  <add name="Nancy" path="api/*" verb="*" type="Nancy.Hosting.Aspnet.NancyHttpRequestHandler" allowPathInfo="true" />
</handlers>
Run Code Online (Sandbox Code Playgroud)

iis6也有匹配部分,所以我可以在webdev.webserver下运行它.然而,测试部署到我的本地iis7(在Win7下)和webdev.webserver,只有/ api实际上调用处理程序.如果我调用/ api/{anything}它只返回404.

我确定我只是"做错了(tm)",但任何帮助都会受到赞赏.

注意:我还尝试了其他一些配置,包括使用标记和创建/ api文件夹,并使用完整的通配符将web.config添加到该文件夹​​.

asp.net iis-7 httphandler webdev.webserver nancy

25
推荐指数
3
解决办法
3万
查看次数

如何允许"路径中的非法字符"?

我有一个MVC.NET应用程序,其中一个路由如下:

routes.MapRoute("member", "member/{id}/{*name}", new { controller = "member", action = "Details", id = "" }, new { id = @"\d+" });

因此,链接可以是这样的:http:// domain/member/123/any_kind_of_username

这通常工作正常,但如果路径包含非法字符(例如双qoute:http:// domain/member/123/my_ "user"_name),我会收到"System.ArgumentException:路径中的非法字符".

经过大量谷歌搜索后,最好的建议似乎是确保网址不包含任何此类字符.不幸的是,在这种情况下,这是我无法控制的.

有办法解决这个问题吗?

asp.net-mvc routing

18
推荐指数
2
解决办法
3万
查看次数

可以在Asp.Net Web Api路由中使用句点吗?

我正在从原始的http处理程序移动API项目,我在路径中使用句点:

http://server/collection/id.format
Run Code Online (Sandbox Code Playgroud)

我想在Web Api(自托管)版本中遵循相同的URL架构,并尝试这样做:

var c = new HttpSelfHostConfiguration(b);
c.Routes.MapHttpRoute(
    name: "DefaultApiRoute",
    routeTemplate: "{controller}/{id}.{format}",
    defaults: new { id = RouteParameter.Optional, format = RouteParameter.Optional },
    constraints: null
);
Run Code Online (Sandbox Code Playgroud)

不幸的是,这似乎没有解决(在/ foo,/ foo/bar和/foo/bar.txt上一致的404').在'format'之前使用斜杠的类似模式工作正常:

var c = new HttpSelfHostConfiguration(b);
c.Routes.MapHttpRoute(
    name: "DefaultApiRoute",
    routeTemplate: "{controller}/{id}/{format}",
    defaults: new { id = RouteParameter.Optional, format = RouteParameter.Optional },
    constraints: null
);
Run Code Online (Sandbox Code Playgroud)

我还没有深入研究Web Api的代码,在此之前我想过我会在这里询问这是否是Web Api中已知的,甚至是合理的限制.

更新:我忽略了提到"id"和"format"是字符串,这对于解决这个问题很重要.添加约束以从"id"标记中排除句点可解决404问题.

c# asp.net-mvc asp.net-mvc-routing asp.net-web-api

18
推荐指数
4
解决办法
1万
查看次数

将DateTimeOffset作为WebAPI查询字符串传递

我有一个WebAPI动作,如下所示:

[Route("api/values/{id}")]
public async Task<HttpResponseMessage> Delete(string id, DateTimeOffset date) {
    //do stuff
}
Run Code Online (Sandbox Code Playgroud)

但是当我从一个HttpClient实例调用它时,创建一个如下的URL:

string.Format("http://localhost:1234/api/values/1?date={0}", System.Net.WebUtility.UrlEncode(DateTimeOffset.Now.ToString()));
// -> "http://localhost:1234/api/values/1?date=17%2F02%2F2015+7%3A18%3A39+AM+%2B11%3A00"
Run Code Online (Sandbox Code Playgroud)

我得到一个400回复,说date不可存在的参数不存在.

我也尝试将该[FromUri]属性添加到参数中,但它仍然没有映射.如果我将其更改为DateTimeOffset?我可以看到它保留为null并且查看Request.RequestUri.Query值是否存在,只是没有映射.

最后,我尝试不做一个WebUtility.UrlEncode,它没有任何不同.

.net c# asp.net-web-api

10
推荐指数
4
解决办法
1万
查看次数

使用ASP.Net Web Api 2中的PUT动词上传文件

我想使用HTTP PUT动词公开ASP.Net Web Api 2动作来上传文件.这与我们的REST模型一致,因为API代表一个远程文件系统(类似于WebDAV,但实际上是简化的),因此客户端选择资源名称(因此PUT是理想的,POST不是一个合理的选择).

Web Api文档描述了如何使用multipart/form-data表单上载文件,但没有描述如何使用PUT方法进行上传.

您将使用什么来测试这样的API(HTML多部分表单不允许PUT动词)?服务器实现是否类似于web api文档中描述的多部分实现(使用MultipartStreamProvider),或者应该如下所示:

[HttpPut]
public async Task<HttpResponseMessage> PutFile(string resourcePath)
{
    Stream fileContent = await this.Request.Content.ReadAsStreamAsync();
    bool isNew = await this._storageManager.UploadFile(resourcePath, fileContent);
    if (isNew)
    {
        return this.Request.CreateResponse(HttpStatusCode.Created);
    }
    else
    {
        return this.Request.CreateResponse(HttpStatusCode.OK);
    }
}
Run Code Online (Sandbox Code Playgroud)

c# file-upload http asp.net-web-api asp.net-web-api2

7
推荐指数
1
解决办法
9744
查看次数

Internet Explorer 9不使用内联附件的文件名

我在Servlet中使用此代码,该Servlet设置内联PDF文档的文件名:

response.setContentType("application/pdf");
response.setContentLength((int) file.length());
response.setHeader("Content-disposition", "inline; filename=\"" + file.getName() + "\"");
Run Code Online (Sandbox Code Playgroud)

但是这在IE 9中不起作用:"另存为..."对话框仅显示URL的最后一个路径部分,后跟".pdf"(对于"/ some/url/invoice",它是"invoice.pdf" )

这是一个已知的错误?有解决方法吗?

internet-explorer servlets http-headers

6
推荐指数
1
解决办法
6944
查看次数

MVC 5 WebRequest URL中的尾随点导致404

我运行MVC 5,并有一个搜索API产生以下链接:/SearchedItem.?format=json这里SearchedItem.是用户输入的搜索.由于一个dot角色,这显然会导致着名的404 .我已经研究了以下所有解决方案:

点字符'.' 在MVC Web API 2中请求诸如api/people/STAFF.45287之类的请求

URL中的点导致404使用ASP.NET mvc和IIS

当ID包含句点时,ApiController返回404

然而,无论是加斜杠(尝试都/SearchedItem./?format=json/SearchedItem.?format=json/),也不RAMMFAR工作.

寻找任何新的建议.

api url asp.net-mvc http-status-code-404

5
推荐指数
1
解决办法
578
查看次数