0

我正在开发一个新项目,它使用旧项目中的旧 dll 文件来加密密码。您将一个字符串传递给一个函数,它会返回一个加密的字符串。

现在,当我在我的 Win 7 机器上进行本地测试时,它可以正常工作,但是当我将它放在我的 Win Server 2008 上时,它就不起作用了。起初它在尝试在 64 位上运行 32 位时出错,但我只是在 IIS 应用程序池中将“启用 32 位应用程序”设置为 true,然后它停止给出错误,但现在它得到了到它必须返回加密字符串的行,它只是坐在那里直到它给出超时:“连接已重置”。但是没有黄屏死机。

我使用了一个程序“dependency walker”来查看 dll 使用什么,从那里我可以看到我引用了使用 kernerlBase.dll 的 kernerl32.dll(这个 kernelBase.dll 存在于我的 Win 7 机器上,但不在 Win Server 上) . 以防万一我在重建旧项目后尝试从 dll 中返回一些静态字符串,例如“错误”,但没有任何返回。仍然超时,似乎它甚至没有转到我用来加密字符串的函数。


我用这个...

[DllImport("MD5CriptUnix.dll")]
public static extern string md5_crypt(string pass, string salt);

...导入 dll 并使用它,它再次在我的机器上工作,我认为它在服务器上工作,因为没有显示错误

4

0 回答 0