0

我正在使用 C# 在现有的 ASP.net2.0 应用程序中工作,并在 Windows 2008 R2 服务器 64 位中部署在 IIS 7.5 上。

在我的应用程序中,各种图像大小是从下面给出的 IIS 设置中处理的。这样做的效果是,如果我们访问图像大小为

http//domainname.com/images/imagename.jpg?w=21&h=213

图像会根据给定的宽度和高度参数自动调整大小。这一切都是由于 web.config 中的以下条目而发生的

<system.webServer>
    <handlers>      
        <add name="png" path="*.png" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
        <add name="jpg" path="*.jpg" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
        <add name="jpeg" path="*.jpeg" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
    </handlers>
</system.webServer>

当我们在上面的 web.config 文件中为指向路径 aspnet_isapi.dll 的图像添加 isapi 过滤器时,条目就出现了。

它工作得很好。

现在我已将同一 IIS 上的应用程序池从 32 位升级到 64 位。图像调整发生失败。我认为的原因是因为在配置中它说“bitness32”,所以我们将其设置为 64 位,如“bitness64”并更新了配置

<system.webServer>
    <handlers>      
        <add name="png" path="*.png" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
        <add name="jpg" path="*.jpg" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
        <add name="jpeg" path="*.jpeg" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
    </handlers>
</system.webServer>

但是当我们这样做时,网站中不再出现各种图像。

请建议我,我们如何紧急解决这个问题

问候,

4

1 回答 1

0

您可以在 IIS 7 中将启用 32 位应用程序设置为 True(在您的应用程序正在使用的应用程序池上)。

在 64 位 Windows 上,32 位进程无法加载 64 位 DLL,64 位进程无法加载 32 位 DLL。如果您计划在 64 位 Windows 上运行 32 位应用程序,则必须配置 IIS 以创建 32 位工作进程。将 IIS 配置为创建 32 位工作进程后,您可以在 64 位 Windows 上运行以下类型的 IIS 应用程序:

  • Internet 服务器 API (ISAPI) 扩展
  • ISAPI 过滤器
  • Active Server Page (ASP) 应用程序(特别是调用 COM 对象的脚本,其中 COM 对象可以是 32 位或 64 位)
  • ASP.NET 应用程序

屏幕:

在此处输入图像描述

于 2012-11-10T17:29:58.390 回答