开发环境运行正常,发布服务器后提示HTTP 错误 403.14 - Forbidden

一、发布服务器后报错

今天在项目发布中遇到一件奇怪的事,开发完成的项目,发布到服务器上时

1. 发布到A服务器,一切正常

2. 发布到B服务器,提示403服务器错误

在同事电脑上重新打包发布代码,并发布到A,B两台服务器上,都正常。

真是见鬼了,同一个项目,同一份源代码,但是在不同的电脑上打包发布,却有一台服务器是错误的。

-----------------------------------------------------------------------------------------------------------------------------

二、Bin文件夹下缺少DLL文件

我使用Beyond Compare比较我电脑上打包的发布代码和同事电脑上打包的发布代码,发现我打包的代码的Bin文件夹下缺少几个DLL文件

 

--------------------------------------------------------------------------------------------------------

三、引用属性[复制本地]是False

为什么我电脑上发布的代码缺少DLL文件,而同事发布的代码不缺少呢?

经过检查发现,在我的Visual Studio 中,这几个引用的属性[复制本地]是False

而同事从SVN上下载的代码,未经任何修改,[复制本地]的属性却是True的,所以他发布的代码不缺少DLL文件,而我发布的代码缺少DLL文件

---------------------------------------------------------------------------------------------------

四、未解之谜

1. 为什么同事从SVN上下载的代码,未经任何修改,[复制本地]的属性是True,而我的是False

打开csproj文件发现,其他引用的<private>节点值是True,而这几个引用的<private>是缺省的,可能是这个缺省值导致了在有的电脑上是True,在有的电脑上是False。关于这个缺省默认值的资料没有查到,只能这样猜测了。

2. 为什么同一份代码发布到不同的服务器,有的成功有的失败?

我电脑上发布打包的代码Bin文件夹下是缺少DLL文件的,但是我拿这个代码发布的另一台服务器却是成功的。

两台服务器的环境可能有细微差别,具体差别在哪里就不知道了。

posted @ 2018-09-26 17:09  牛小花  阅读(1221)  评论(2编辑  收藏  举报