Asp.net web api 将服务框架(web api)添加到DNN7模块

Asp.net web api 将服务框架(web api)添加到DNN7模块,asp.net-web-api,dotnetnuke,Asp.net Web Api,Dotnetnuke,我正在尝试将Web API集成到DNN7模块中 控制器和映射器: namespace MyControllers { public class ExampleController : DnnApiController { #region "Web Methods" [DnnAuthorize()] [HttpGet()] public HttpResponseMessage H

我正在尝试将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-找不到


对可能遗漏的内容有何建议

解决了!!!原来DesktopModules文件夹是IIS中的应用程序,这阻止了WebApi。 所以,如果你得到非描述性的

HTTP错误404.0-找不到


首先检查IIS

不确定是否是这样,但如果您尝试在名称/文件夹中没有句点的模块,会怎么样?将相同的代码移动到单独的类库项目中,输出dll将转到网站的主bin,删除所有句点。尝试通过url访问:我在这里迷路了,可能是webconfig中的某个东西?你能用Fiddler解决这个问题吗。这通常是我处理WebAPI问题的方式。它甚至没有找到它,所以我想知道它是否与端口有关(80 vs 443)??发现了问题,DesktopModules文件夹是IIS中的一个应用程序,这显然是对web api的否定。我真的希望我能找出如何阻止vs使用我的DNN模板这样做。这次我没有使用你的模板。开始考虑什么可能会阻止http处理程序,所以删除了所有web.config并逐个添加回来,然后得到了关于IIS中应用程序的好主意。这很有趣,所以不仅仅是我的模板,这让我的头脑稍微放松了一点:DChris,您是否尝试过将模板项目设置改为使用。@DNNDev.co.za您已经有了一个很好的代码示例--谢谢:)