ASP.NET应用程序在部署到IIS时中断
我正在开发一个用于在线购物的小型ASP.NET网站,在Visual Studio中进行测试时,一切正常,但当我将其部署到IIS时,情况已不再如此 问题似乎出在我引用的一个DLL文件中,这个DLL文件包含我需要初始化的类,并将查询请求发送到另一个拥有所有产品信息的服务器。这个DLL最初是一个Jar文件,我使用IKVM将其转换为DLL 当我将应用程序部署到IIS时,尝试实例化该DLL中定义的对象的任何页面都会因空引用而失败,例如:ASP.NET应用程序在部署到IIS时中断,asp.net,iis,deployment,nullreferenceexception,ikvm,Asp.net,Iis,Deployment,Nullreferenceexception,Ikvm,我正在开发一个用于在线购物的小型ASP.NET网站,在Visual Studio中进行测试时,一切正常,但当我将其部署到IIS时,情况已不再如此 问题似乎出在我引用的一个DLL文件中,这个DLL文件包含我需要初始化的类,并将查询请求发送到另一个拥有所有产品信息的服务器。这个DLL最初是一个Jar文件,我使用IKVM将其转换为DLL 当我将应用程序部署到IIS时,尝试实例化该DLL中定义的对象的任何页面都会因空引用而失败,例如: Fulfiller fulfiller = new Fulfille
Fulfiller fulfiller = new Fulfiller();
string result = fulfiller.initialize("host", port, "user", "pass");
返回此错误:
System.NullReferenceException
:对象引用未设置为实例
指一个物体。atFulfiller.toLog(字符串)
at
Fulfiller.initialize(字符串str1、Int32 i、字符串str2、字符串str3)
在Orders.createDataSource()上
现在再次说明,这在VS开发服务器上非常有效,但在IIS中会中断,我不知道为什么。在IIS上运行时,DLL没有正确加载,这是某种编码问题吗?或者是IIS的问题,或者是阻止DLL执行或发送请求,我非常渴望解决这个问题
谢谢fulfiller.Initialize()在做什么?你能发那个密码吗
很明显,您有一个fulfiller引用,因为您不能无错误地传递构造函数,然后有一个null-ref。fulfiller.Initialize()在做什么?你能发那个密码吗
很明显,您有一个fulfiller引用,因为您不能无错误地传递构造函数,然后使用null-ref。通常,当在开发服务器上工作的东西在IIS上不工作时,问题是授权(VS服务器在您的凭据下运行,但IIS作为“网络服务”或其他系统用户运行) 例如,我在fulfiller.toLog()上看到您的代码中断
可能是toLog()函数试图打开一个日志文件,而IIS模拟的用户无权读取或写入该文件吗?通常,当在开发服务器上运行的东西在IIS上不起作用时,问题是授权(VS服务器在您的凭据下运行,但IIS作为“网络服务”运行)或其他系统用户) 例如,我在fulfiller.toLog()上看到您的代码中断
可能是toLog()函数正在尝试打开日志文件,而IIS模拟的用户无权读取或写入该文件吗?I second Loris的回答 dev服务器具有您的权限。假设您正在部署到Windows Server或任何运行Active Directory的计算机,您应该能够右键单击存储日志文件的目录并选择“属性”。在该对话框中,将有一个标签为“安全性”的选项卡。如果网络服务用户(或IUSR_machinename)不可见,则必须将其添加到列表中。选择用户并为其分配读写权限
不要向IIS用户授予对整个应用程序目录的完全权限。这是一个巨大的安全漏洞,因此默认部署不给您当前所需的权限。我支持Loris的回答 dev服务器具有您的权限。假设您正在部署到Windows Server或任何运行Active Directory的计算机,您应该能够右键单击存储日志文件的目录并选择“属性”。在该对话框中,将有一个标签为“安全性”的选项卡。如果网络服务用户(或IUSR_machinename)不可见,则必须将其添加到列表中。选择用户并为其分配读写权限
不要向IIS用户授予对整个应用程序目录的完全权限。这是一个巨大的安全漏洞,因此默认部署没有为您提供当前所需的权限。我没有使用IKVM,但我确信服务器上必须安装一些IKVM运行时。您在服务器上检查过IKVM吗
希望这有帮助。我没有使用过IKVM,但我确信服务器上必须安装一些IKVM运行时。您在服务器上检查过IKVM吗 希望这有帮助