C# ASP.NETWebAPI MapHttpRoute在VisualStudio上工作,但不';不能在Web表单应用程序中使用IIS
我在C# ASP.NETWebAPI MapHttpRoute在VisualStudio上工作,但不';不能在Web表单应用程序中使用IIS,c#,iis,asp.net-web-api,webforms,asp.net-web-api-routing,C#,Iis,Asp.net Web Api,Webforms,Asp.net Web Api Routing,我在Global.asax的Application\u Start中有一个简单的路径: RouteTable.Routes.MapHttpRoute("MyApi", "api/{controller}/{id}"); 这是控制器的文件夹路径和要从控制器使用的页面: public class VideoController : ApiController { public HttpResponseMessage Get(long id) { try
Global.asax的Application\u Start
中有一个简单的路径:
RouteTable.Routes.MapHttpRoute("MyApi", "api/{controller}/{id}");
这是控制器的文件夹路径和要从控制器使用的页面:
public class VideoController : ApiController
{
public HttpResponseMessage Get(long id)
{
try
{
// some code here
}
catch (Exception e)
{
return Request.CreateErrorResponse(HttpStatusCode.ServiceUnavailable, e);
}
}
}
当我在visual studio中运行项目时,它工作正常,但当我在iis上发布应用程序时,我发现以下错误:
Failed to load resource: the server responded with a status of 404 (Not Found)
更新
这是我的控制器的内容:
public class VideoController : ApiController
{
public HttpResponseMessage Get(long id)
{
try
{
// some code here
}
catch (Exception e)
{
return Request.CreateErrorResponse(HttpStatusCode.ServiceUnavailable, e);
}
}
}
我通过将html5视频标签放入default.aspx
以下路径调用此控制器:
WebContent/pages/web/default.aspx
<video controls="" preload="auto" class="uk-width-1-1">
<source src="/api/video/3" type="video/mp4">
</video>
我如何解决这个问题。这一行可能就是问题所在
<source src="/api/video/3" type="video/mp4">
如果您已使用Visual Studio本身在IIS上托管应用程序,则它通常会在默认网站下的web应用程序下托管应用程序,并且您的url如下所示
尝试将您的url更改为
<source src="/yourAppnameinIIS/api/video/3" type="video/mp4">
如果你还没有尝试过的话,那就值得一试。在你的web.config
文件中设置path=“*。”
和verb=“*”
。你的控制器中的代码是什么,你有没有像[route(“api/getContacts”)]这样的路由属性@uowzd01,我更新了我的问题,请帮助我,这对我来说非常关键。我应该把这些配置放在哪里?您能用属性编写完整的标记吗?
我添加了此配置,但在运行项目时发生了此错误:HTTP错误500.23-内部服务器错误检测到ASP.NET设置不适用于集成管理管道模式。
您能显示您的web配置代码吗您只需要在集成版本声明的位置添加谓词和路径。