如何修改web.config强制Dynamics AX 2009编译AIF服务为.NET 2.0.50727?
解决Dynamics AX 2009 AIF服务DLL编译版本问题
我来帮你搞定这个AIF服务生成DLL版本不符的问题——要强制生成.NET 2.0(版本号2.0.50727)的DLL,你只需要调整AIF Web服务对应的web.config文件里的几个关键配置项,具体操作如下:
1. 定位目标web.config文件
首先找到AX服务器上AIF Web服务的配置文件,默认路径一般是:C:\Program Files\Microsoft Dynamics AX\50\Application Integration Framework\WebServices\web.config
如果你的AIF服务部署在自定义路径下,就找到对应目录里的web.config即可。
2. 强制指定CLR运行时版本
在<configuration>根节点下添加或修改<startup>节点,明确要求使用.NET 2.0的运行时:
<configuration> <!-- 其他已有配置保持不变 --> <startup> <supportedRuntime version="v2.0.50727"/> <requiredRuntime version="v2.0.50727" safemode="true"/> </startup> </configuration>
supportedRuntime:声明应用支持的.NET运行时版本requiredRuntime:强制要求使用指定版本,safemode="true"会阻止系统自动回退到更高版本的CLR
3. 设置编译目标框架
找到<system.web>节点下的<compilation>标签,添加或修改targetFramework属性为2.0:
<system.web> <compilation defaultLanguage="c#" debug="false" targetFramework="2.0"> <!-- 原有的compilation子节点(如assemblies、buildProviders等)保持不变 --> </compilation> <!-- 其他system.web配置保持不变 --> </system.web>
如果原来的<compilation>标签已经有targetFramework="4.0"之类的设置,直接改成2.0即可。
4. 生效配置并验证
- 修改完成后,重启对应的IIS应用池(通常是名为
DynamicsAXAIFWebServices的应用池),确保配置生效 - 点击“Generate”按钮重新生成DLL,之后右键生成的DLL文件→属性→详细信息,查看版本号是否为2.0.50727开头
额外验证(可选)
如果你能访问AX客户端,可以进入System Administration > Setup > Services and Application Integration Framework > Inbound ports,找到对应的服务端口,检查“Advanced”选项卡中的.NET版本是否设置为2.0,这会和web.config的设置形成双重保障。
内容的提问来源于stack exchange,提问作者RT.
相关产品推荐
相关产品推荐

