【发布时间】:2013-10-05 23:34:08
【问题描述】:
我正在尝试将 Web API 集成到 DNN7 模块中。
控制器和映射器:
namespace MyControllers
{
public class ExampleController : DnnApiController
{
#region "Web Methods"
[DnnAuthorize()]
[HttpGet()]
public HttpResponseMessage HelloWorld()
{
try
{
string helloWorld = "Hello World!";
return Request.CreateResponse(HttpStatusCode.OK, helloWorld);
}
catch (System.Exception ex)
{
//Log to DotNetNuke and reply with Error
Exceptions.LogException(ex);
return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message);
}
}
public class RouteMapper : IServiceRouteMapper
{
public void RegisterRoutes(IMapRoute mapRouteManager)
{
mapRouteManager.MapHttpRoute("MyControllers", "default", "{controller}/{action}", new[] { "MyControllers" });
}
}
}
然后我尝试从 url 访问 HelloWorld 方法
https://localhost/DesktopModules/MyControllers/API/Example/HelloWorld
并获得
HTTP 错误 404.0 - 未找到
关于可能缺少什么的任何建议?
【问题讨论】:
-
不确定是不是这样,但是如果您尝试使用名称/文件夹中没有句点的模块怎么办?
-
将相同的代码移动到单独的类库项目中,输出的dll进入网站的主bin,到处都删除了所有句点。尝试以这种方式使用 url 访问:localhost/DesktopModules/[LibraryFolderName]/API/…
-
我在这里迷路了,也许是 webconfig 中的一些东西?
-
你能用 Fiddler 解决这个问题吗?这通常是我解决 WebAPI 问题的方式。它甚至没有找到它,所以我想知道它是否与端口有关(80 vs 443)???
-
发现了问题,DesktopModules 文件夹是 IIS 中的一个应用程序,这显然是对 web api 的否定。
标签: asp.net-web-api dotnetnuke