【问题标题】:Adding services framework (web api) to DNN7 module将服务框架(web api)添加到 DNN7 模块
【发布时间】: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


【解决方案1】:

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

HTTP 错误 404.0 - 未找到

首先检查 IIS。

【讨论】:

  • 我真希望我能弄清楚如何使用我的 DNN 模板阻止 VS 这样做
  • 这次我没有使用你的模板。开始思考可能会阻止 http 处理程序的方向,因此删除了所有 web.config 并将它们一一添加回来,然后对 IIS 中的应用程序有了这个好主意。
  • 这很有趣,所以它不仅仅是我的模板,这让我的心情有点放松:D
  • 克里斯,您是否尝试过将模板项目设置更改为使用
  • @DNNDev.co.za 很棒的代码示例 - dnndev.co.za/Home/post=187 - 谢谢 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 2016-11-21
  • 2013-12-26
相关资源
最近更新 更多