gpt4 book ai didi

ajax - DnnApiController 和 Azure 网站

转载 作者:行者123 更新时间:2023-12-03 03:17:32 24 4
gpt4 key购买 nike

我们在 Azure VM 上有一个开发站点,在 Azure 网站上有一个生产站点,均使用 DNN 平台 7.1.2。

如下所示的 Ajax 调用模式调用 DnnApicontroller 并在开发站点上正常工作,但在部署到 Azure 网站上的生产站点后会失败。

我检查了 Bin 文件夹以确保两者都使用相同版本的 dll。我检查了 webconfig 文件,发现它们也很相似。

收到的错误是“{”Message”:“无法找到 http://mydomain.com/DesktopModules/ContentModule/API/BusinessObjects/HelloWorld 的 Controller 。在命名空间中搜索:IPW.Modules.ContentModule、ContentModule。"}"

这些调用在开发站点上运行良好。根据错误消息,路由没有发现命名空间提供的匹配 Controller 。

-这是 ajax 调用的示例:

$.ajax({
type: "POST",
cache: false,
url: baseServicePath + 'HelloWorld',
dataType: "json",
beforeSend: serviceFramework.setModuleHeaders
}).done(function (data) {

console.log(data);

}).fail(function () {
console.log('Sorry failed to load hours');
});

-'baseServicePath'使用DNN平台serviceFramework.getServiceRoot('ContentModule') + 'BusinessObjects/'获取URL

-路线映射器:

 public void RegisterRoutes(IMapRoute mapRouteManager)  {
mapRouteManager.MapHttpRoute("ContentModule", "default", "{controller}/{action}", new[] { "My.Modules.ContentModule", "ContentModule" });
}

-以及 apicontroller 方法:

  public class BusinessObjectsController : DotNetNuke.Web.Api.DnnApiController
{

[AllowAnonymous]
[AcceptVerbs("GET", "POST")]
public HttpResponseMessage HelloWorld()
{
string result = "Hello world! Time is: " + DateTime.Now + "";
var response = Request.CreateResponse(HttpStatusCode.OK, result, Configuration.Formatters.JsonFormatter);

return response;
}
}
}

调用失败的地方是在 Azure 网站上运行的生产站点,代码与开发人员相同。 DNN 平台使用自定义映射接口(interface)。如有任何建议,我们将不胜感激。

最佳答案

我假设如果您在 Azure 网站中使用自定义域:

  1. 您已为与自定义 DNS 名称对应的网站创建了 DNN 门户别名
  2. 您还在 Azure 网站中启用了该域名主机名
  3. 如果您使用的是裸主机(例如“http://mydomain.com/ ...”),请确保您的设置正确(检查 http://maartenvanstam.wordpress.com/2013/08/23/configuring-a-naked-domain-name-for-a-windows-azure-web-site/ )

如果这没有帮助,只需检查 GitHub 上的模块示例“DNN Todo List” http://github.com/davidjrh/dnntodolist 。只是使用相同的模式。

关于ajax - DnnApiController 和 Azure 网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21420492/

24 4 0
文章推荐: javascript - 当我单击