我做了wpf(c#)应用程序,安装我的一些应用程序到windows,我有问题与webapp时,运行。net托管捆绑修复。
我的安装程序这样做,除其他事项外:
1.安装.net主机包7.0.5
1.安装IIS
1.将应用程序文件复制到c:/inetpub/MyApp
1.将该文件夹的权限授予IIS_IUSRS和DefaultAppPool
1.创建iis网站localhost:8888
1.修复.net托管包(这一步是必要的,因为我得到错误“HTTP错误500.19 -内部服务器错误”,如果我不这样做与c#进程或手动)
1.重新启动IIS
如果我没有安装主机包,这一切都像一个魅力,但问题发生时,我有主机包isntalled(在我的情况下7.0.5),我试图通过C#修复。我的应用程序只是关闭,我甚至不能得到错误的捕捉。
安装后(崩溃)我可以手动打开托管bundle .exe并单击修复,或者通过cmd进行修复,比我的网站在iis上的作品应该像IIS安装代码是:
string file = @"dism.exe";
string arguments = $"/quiet /norestart /Online /Enable-Feature /FeatureName:IIS-WebServerRole /All";
Process process = new Process();
process.StartInfo.FileName = file;
process.StartInfo.Arguments = arguments;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
我试过了
- 以管理员身份运行
- 在修复.net主机包并再次启动之前停止IIS
- 使用process()执行修复
- 使用cmd执行修复(在我的wpf(c#)应用程序中)
- 还有这么多的组合
我的第一个代码(如果没有安装.net托管包,并且我的应用程序在创建iis站点之前进行安装)是这样的:
string file = @"./Source/dotnet-hosting-7.0.5-win.exe";
string arguments = $"/repair /quiet /norestart";
Process process = new Process();
process.StartInfo.FileName = file;
process.StartInfo.Arguments = arguments;
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.Start();
process.WaitForExit();
我已经尝试添加超时
int timeoutMilliseconds = 10000;
if (!process.WaitForExit(timeoutMilliseconds))
我还尝试给完整的路径。net托管捆绑。exe文件(即使它的工作时,托管捆绑没有安装之前,我的应用程序开始安装)
这也不起作用:
process.OutputDataReceived += (sender, e) =>
{
if (!string.IsNullOrWhiteSpace(e.Data))
Console.WriteLine(e.Data);
};
process.ErrorDataReceived += (sender, e) =>
{
if (!string.IsNullOrWhiteSpace(e.Data))
Console.WriteLine(e.Data);
};
基本上,如果有.net托管捆绑安装之前,我的wpf应用程序是执行,修复不工作,我需要做的手动,如果我想我的iis网站的工作
顺便说一句,这是我在修复x1c 0d1x之前得到的错误
PS:我已经问了ChatGPT 100000个问题,在这种情况下没用
2条答案
按热度按时间eivgtgni1#
HTTP错误500.19 -内部服务器错误
错误代码:0x 8007000 d
无法访问请求的页,因为该页的相关配置数据无效。
出现此问题的原因是ApplicationHost.config或Web.config文件包含格式错误或未识别的XML元素。IIS无法识别未安装模块的XML元素。例如,IIS URL重写模块。例如:URL重写模块、ASP.NET Core模块、CORS模块。
从ApplicationHost.config或Web.config文件中删除格式错误的XML元素。检查未识别的XML元素,然后安装相关的IIS模块。你也可以参考Lex Li的这个article,也许对你有帮助。
相似线程:asp.net core web api published in IIS after moved to different IIS server pc gives error 500.19 (0x8007000d)
7vhp5slm2#
所以,我找到了解决方案,我注意到ApplicationHost.config没有元素
我得到的结论是修复托管捆绑注册这个AspNetCoreModuleV2到IIS,我已经厌倦了许多不同的方法来安装这个模块与IIS安装,但无济于事,尝试给args到dism.exe像:
发生这种情况的原因是因为主机包已经安装之前IIS,因为修复不起作用(我的应用程序不断崩溃)我想只是安装“AspNetCoreModuleV2”后,我安装IIS
所以我在这个site上得到了我的.msi:
然后我就在iis之后安装了它,它修复了代码的问题