【知识笔记】Debugging
⼀、启动调试出现⽆法启动程序当前状态中是⾮法
VS⼯具--选项--调试--常规--启⽤asp的JavaScript调试(chrome和ie)去掉勾选
⼆、fig中<customErrors>报错
重定向英文<customErrors>节点⽤于定义⼀些⾃定义错误信息的信息。
此节点有Mode和defaultRedirect两个属性,其中
defaultRedirect属性是⼀个可选属性,表⽰应⽤程序发⽣错误时重定向到的默认URL,如果没有指定该属性则显⽰⼀般性错误;
Mode属性是⼀个必选属性,它有三个可能值,它们所代表的意义分别如下:
Mode 说明
On 表⽰在本地和远程⽤户都会看到⾃定义错误信息。
Off 禁⽤⾃定义错误信息,本地和远程⽤户都会看到详细的错误信息。
RemoteOnly 表⽰本地⽤户将看到详细错误信息,⽽远程⽤户将会看到⾃定义错误信息。
这⾥有必要说明⼀下本地⽤户和远程⽤户的概念。当我们访问asp应⽤程时所使⽤的机器和发布asp应⽤程序所使⽤的机器为同⼀台机器时成为本地⽤户,反之则称之为远程⽤户。
在开发调试阶段为了便于查错误Mode属性建议设置为Off,⽽在部署阶段应将Mode属性设置为On或
者RemoteOnly,以避免这些详细的错误信息暴露了程序代码细节从⽽引来⿊客的⼊侵。
所以想看具体的错误,有两种⽅式:将mode设置为Off,或者直接在服务器上复现刚才发⽣错误的操作,看详细的错误信息。
参考:
三、WCF报错
1、WCF运⾏不起来
System.ServiceModel.EndpointNotFoundException:“没有终结点在侦听可以接受消息的
可能是 wcf服务没启动?
从IIS_Express中打开wcf站点,看是否有报错,
可能错误:未能加载配置⽂件;web.Config中wcf路径配置有误
路径错误,看是否需要修改.vs\fig 中的虚拟路径 <virtualDirectory path="/Service" physicalPath="D:\sources.git\xxx\yyy" />
配置⽂件拷贝后,WCF运⾏起来。
2、调试不进断点
调试选项⾥⾯的 “仅我的代码”,取消选中
3、⽆法⾃动进⼊并单步执⾏服务器。调试器未能在服务器进程中停⽌
以上设置都配置好后,清理解决⽅案,重新⽣成。
4、域名绑定问题
可以看到,restapi请求WCF时 没有成功。
在本地看到wcf是ok的。但是在restapi所在的服务器上请求wcf是不⾏的。于是看服务器上的host,发现没有绑定 wcf域名对应的ip。
四、DBContext报类型初始值设定项引发异常
查看配置⽂件,configSource节点
<appSettings configSource="VConfigs\fig">
<add key="ClientSettingsProvider.ServiceUri" value=""/>
</appSettings>
⼿动改为
<appSettings configSource="VConfigs\fig"/>
五、 Missing type map configuration or unsupported mapping
Missing type map configuration or unsupported mapping. Mapping types: Discount -> DiscountEntity
Ferry.Data.Models.Discount ->Entity.DiscountEntity Destination path: List`1[0] Source value: Data.Models.Discount,錯誤源:
从 GitHub 上签出 AutoMapper 的源代码⼀看 Mapper.Initialize() 的实现,恍然⼤悟。
public static void Initialize(Action<IMapperConfigurationExpression> config)
{
Configuration = new MapperConfiguration(config);
Instance = new Mapper(Configuration);
}
原来每次调⽤ Mapper.Initialize() 都会创建新的 Mapper 实例,也就是多次调⽤ Mapper.Initialize() 只有最后⼀次⽣效。
更多参考:
六、the current .NET SDK does not support targeting .NET Standard 2.0. Either target .NET Standard 1.6 or lower, or use a version of the .NET SDK that supports .NET Standard 2.0
通过这句英⽂⼀直以为是 framework 2.0未安装。
安装以后引⽤不报错(没有黄⾊感叹号),编译的时候却还是报错。
到原因,原⽂地址
安装 可以解决。
vs重启后,出错的项⽬ 属性。重新选择⽬标平台。
七、未能到⽂件
“D:\sources.git\wingontravel_SZ\Ferry\DEV\Ferry\Ferry.Offline\App_l”
重新编译offline项⽬,并且index.html为启动页⾯。。
让D:\sources.git\wingontravel_SZ\Ferry\DEV\Ferry\Ferry.Offline\App_Data ⽬录下⽣成这个xml⽂件,或者拷贝过来。
⼋、初始化异常或内存不⾜
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
⽇志记录的详细信息:
System.TypeInitializationException: The type initializer for 'Ferry.Data.Models.FerryDBContext' threw an exception.
---> System.TypeInitializationException: The type initializer for 'System.Data.Entity.Utilities.TypeExtensions' threw an exception.
---> System.TypeInitializationException: The type initializer for 'System.Data.Entity.Core.Metadata.Edm.MetadataItem' threw an exception.
---> System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
咋⼀看是数据库(或者EF连接)初始化的问题。
若期间没有动过服务器或者DB,,则⼤致可以认为是服务器问题,可以重启服务,只重启出问题的应⽤程序池。
九、https⽹站中样式资源没起作⽤
F12 看到js报错:Mixed Content: The page at 'xxx//app/#booking/search'
was loaded over HTTPS, but requested an insecure stylesheet 'xxx/Site/Styles/offline/main.css'.
This request has been blocked; the content must be served over HTTPS.
原因:在https⽹站中,载⼊http⽹站的资源(⽹页、图⽚等),会被浏览器阻拦。HTTPS 是 HTTP over Secure Socket Layer,以安全为⽬标的 HTTP 通道,在 HTTPS 承载的页⾯上不允许出现 http 请求。
⼗、未能加载⽂件或程序集
打开WCF时:未能加载⽂件或程序集“MongoDB.Bson, Version=2.2.3.3, Culture=neutral, PublicKeyToken=null”或它的某⼀个依赖项。系统不到指定的⽂件。
到相应的⽬录:D:\sources.git\xxx\DEV\yyy.Offline.Service.Site\bin
看它⾥⾯是否有MongoDB.Bson程序集,没有的话copy⼀份进去。
⼗⼀、分析器错误信息: 未能加载类型“xxxx.Global”
解决⽅法: 删除此项⽬下bin⾥⾯的所有dll,清理 重新⽣成。
⼗⼆、VS中修改代码,再断点调试,发现命中的还是修改前的代码
解决⽅法: 清理解决⽅案,再重新⽣成。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论