分发 ASP.NET 应用程序
我们最近发布了 ASP.NET (.NET 2.0) 应用程序。应用程序文件已预编译,安装程序在 Visual Studio 中生成。它是用 Delphi Prism 编写的,而不是 C# 进行预编译的。
测试时一切正常,但一旦投入使用,我们就开始看到几个问题,例如
- 安装程序有时会拒绝安装,并表示应用程序已安装,即使在安装构建器中设置了“删除以前的版本”选项。
- 安装程序似乎对 IIS 的设置非常敏感。例如,如果没有为 II7 安装 II6 兼容性,安装程序将退出且不显示任何错误消息。
- 当尝试连接到应用程序时,一些用户收到“无法访问 IIS 元数据库”(仍然不知道这是什么)。
- 似乎没有办法在安装程序中创建应用程序池。因此,.NET 2.0 应用程序最终可能会获得使用 .NET 3.5/4.0 的应用程序池。
这些只是我们遇到的一些问题。
是否有更好的方法来分发 ASP.NET 应用程序,并且不需要预先了解最终用户的系统?我们会做一些愚蠢的事情吗?如果这些是常见问题,是否有任何万无一失的安装方法可以很好地安装,并且如果出现问题,为用户提供信息丰富的错误消息。
We recently released an ASP.NET (.NET 2.0) application. The application files are pre-compiled and the installer is generated in Visual Studio. It's pre-compiled as it's written in Delphi Prism, not C#.
Everything worked well while testing, but once in the wild, we started to see several issues e.g.
- The installer sometimes refuses to install saying that the application is already installed, even though the "Remove previous versions" option is set in the install builder.
- The installer seems very sensitive to the setup of IIS. e.g. if II6 compatibility is not installed for II7, the installer exits with no error message.
- When trying to connect to the app, some users get "Failed to access IIS metabase" (still not figured out what this is).
- There doesn't seem to be a way to create an app pool in the installer. Therefore, the .NET 2.0 application can end up with an app pool using .NET 3.5/4.0.
These are just some of the issues we've encountered.
Is there a better method of distributing ASP.NET applications that doesn't require advance knowledge of the end user's system? Could we be doing something stupid? If these are common problems, are there any fool proof installs that install nicely and, if problems occur, provide users with informative error messages.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于一年半以来一直没有答案,我想没有比我们想出的答案更好的答案了。
我们使用 InnoSetup 来运行 ASP.NET 安装程序。但是,它首先检查 ASP.NET 是否已安装,如果是,则将其卸载。这至少解决了我在问题中提到的第一个问题。
As there have been no answers in a year and a half I guess there's no better answer than the one we came up with.
We used InnoSetup to run the ASP.NET installer. However, it first checks if the ASP.NET is installed and, if it is, it uninstalls it. This at least gets around the first issue I mentioned in the question.