C# ASP.NET MVC访问被拒绝(检索具有CLSID的组件的COM类工厂)
我有一个错误,当我点击一个按钮以通过jquery post调用我控制器中的函数时出现: JS代码:C# ASP.NET MVC访问被拒绝(检索具有CLSID的组件的COM类工厂),c#,asp.net,iis,model-view-controller,C#,Asp.net,Iis,Model View Controller,我有一个错误,当我点击一个按钮以通过jquery post调用我控制器中的函数时出现: JS代码: $.post("/generer", { lieu: $("#lieu").val(), date: $("#date").val(), grade: $("#grade").val(), nom: $("#nom").val(), peloton: $("#peloton")
$.post("/generer", {
lieu: $("#lieu").val(),
date: $("#date").val(),
grade: $("#grade").val(),
nom: $("#nom").val(),
peloton: $("#peloton").val(),
objet: $("#objet").val(),
first_para: $("#first_para").val(),
second_para: $("#second_para").val(),
ordre: $("#ordre").val()
}).done(function (data) {
if(data != "Erreur")
{
file = data;
$("#centerdiv").css("display", "none");
$("#div_m").css("display", "block");
}
else { alert(data);}
});
}
我在控制器中调用的C#函数只需打开un word文件,将我在js脚本中获得的所有数据输入书签。
我有一个RouteConfig文件:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Home",
url: "",
defaults: new { controller = "Home", action = "Index" }
);
routes.MapRoute(
name: "Generer",
url: "generer",
defaults: new { controller = "Home", action = "CreateDoc" }
);
routes.MapRoute(
name: "SendMail",
url: "mail",
defaults: new { controller = "Home", action = "SendMail" }
);
在debug via VS中,它工作正常,但当我在IIS中发布网站时,加载了第一个页面(基本上是一个表单),但当我单击调用上面js函数的按钮时,我在浏览器控制台中看到错误:
POST http://localhost:88/generer 500 (Internal Server Error)
当我点击这个链接时,我得到了这个错误:
由于以下错误,检索CLSID为{000209FF-0000-0000-C000-0000000000 46}的组件的COM类工厂失败:80070005访问被拒绝。(来自HRESULT的异常:0x80070005(E_ACCESSDENIED))。
描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解有关错误的更多信息以及错误在代码中的起源
异常详细信息:System.UnauthorizedAccessException:检索CLSID为{000209FF-0000-0000-C000-0000000000 46}的组件的COM类工厂失败,原因是以下错误:80070005访问被拒绝。(来自HRESULT的异常:0x80070005(E_ACCESSDENIED))
ASP.NET无权访问请求的资源。考虑授予对ASP.NET请求标识的资源访问权限。ASP.NET有一个基本进程标识(通常是IIS 5上的{MACHINE}\ASPNET或IIS 6和IIS 7上的网络服务,以及IIS 7.5上配置的应用程序池标识),在应用程序未模拟时使用。如果应用程序是通过模拟的,则标识将是匿名用户(通常是IUSR_MACHINENAME)或经过身份验证的请求用户
要授予ASP.NET对文件的访问权限,请在文件资源管理器中右键单击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加相应的用户或组。突出显示ASP.NET帐户,并选中所需访问权限的复选框
我试图授予权限,但我真的不知道我必须授予哪个用户权限
我还注意到,当我发布这个项目时,并不是所有的文件和文件夹都复制到wwwroot中。与我的另一个项目相反,我的项目将所有文件和文件夹复制到wwwroot。包括routeconfig控制器文件等。。。不适用于本项目,我不知道为什么可能的副本也不起作用