用Dotfuscator按常规的设置混淆桌面应用、web service应用均正常,但混淆web api应用后却出现调用api接口时提示“ 在分析向此请求提供服务所需资源时出错。”错误,如下图的所示:
经反复研究,找到了解决的办法,现将情况记录如下:
项目发布后的文件夹如下图
其中bin文件夹打开后内容如下图。
其中STBRefleshWebApi.dll文件中有感敏信息,若用ILspy等反编译工作打开,可获得这些敏感信息,如下图所示。
这显示是不安全的。 为了解决这个问题,用Dotfuscator工具对上述文件进行混淆。
在Dotfuscator输入该文件,并按如以下图示进行设置。
Disable Renameing 设为Yes是关键,也就是使重命名失效,如果不这样设置,就会出现前述的错误。
进入String Cryption标题指定字符串加密的范围。如下图。
需要输入的信息如下(可能根据操作系统有所差异):
ILASM_v4.0.30319
C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm.exe
ILDASM_v4.0.30319
C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\ildasm.exe
其余设置均取默认值。
按绿色小三角符号生成混淆后的文件 。
用ILSpy打开混淆后的文件,相关敏感字符串的内已不可见。
用加密后的STBRefleshWebApi.dll文件替换发布的文件夹中的同名文件即可。