我在一个非常大的遗留代码库上工作.因为它并不总是保持最佳状态,所以有时会从控制流中使用异常,或者出于其他原因.并且有时候它几乎是不可避免的例如,除了将文件作为图像传入并查看它是否不会引发异常之外,您如何检查文件是否是有效的.ico图像?
我尽可能地重构这种东西,但很多时候,为了获得微小的收益而重构太昂贵了.调试时,这些虚假的异常变得非常烦人.我们捕获所有异常以避免程序崩溃,并捕获大多数异常并显示更加用户友好的东西.因此,在调试时,如果某段代码抛出一个ApplicationException,那么在我们最终得到实际的bug之前,可能会抛出50个异常类型.大多数情况下,这些虚假的例外都集中在一部分代码上(很多时候是一行).有没有什么方法可以让Visual Studio忽略从该行抛出的异常,但仍然停止在实际问题的异常上?或者我还能做些什么来帮助防止这种调试失败?
为了说明我的问题,想象一下这样的事情:
for(int i=0; i<foo; i++)
{
try
{
FooBar(i); //this function throws NullReferenceException sometimes
}catch {} //ignore it because we don't care if it failed
}
....
var tmp=Bar as FooType; //this cast fails so tmp is null
tmp.Meh(); //throws exception here. This is a bug, we should've checked for null
Run Code Online (Sandbox Code Playgroud)
如果你想弄清楚NullReference的位置,你基本上按住F5,直到你通过FooBar调用.这充其量是烦人的,并且非常容易出错
我一直在尝试在SQl服务器管理工作室中运行调试,并且出于某种原因,调试器刚刚停止工作.
这是我收到的消息:
无法启动Transact-SQL调试器,无法连接到数据库引擎实例'server-sql'.确保已启用调试防火墙例外,并且正在使用作为sysadmin固定服务器角色成员的登录名.RPS服务器不可用.
在此之前,我收到两条消息,一条请求防火墙权限,另一条消息说"使用"一些文字没什么意义.
我已经查看了其他类似的答案,其中相同的消息建议将登录添加为系统管理员但已经设置.我也尝试将sysadmin添加到另一个帐户,但这也无效.
我使用空的Web应用程序和nuget服务器包设置了一个私有nuget feed.这一切都正常,我可以从Feed中检索,我可以使用Nuget Package Explorer发布到私有Feed.但是我无法通过命令行发布 - 它会提示输入凭据.我已经在Appsettings中将Web应用程序中的ApiKey设置为一个简单的密码,我尝试将ApiKey添加到push命令.这会提示我输入用户名和密码.我也尝试过SetApiKey命令但是我得到了相同的行为.在构建服务器上,我尝试相同的结果.
以下是构建日志中的错误消息(标识信息x出来)
nuget pack "C:\Builds\2\OE Phase II\Common\src\WebApi\Web.Http\Bxxxxxxxs.Web.Http.csproj" -IncludeReferencedProjects -Properties Configuration=Release
nuget SetApiKey Bxxxxxxx1 -Source http://tfs12.xxxxxxxrps.com/Nuget
nuget push *.nupkg -s http://tfs12.xxxxxxxrps.com/Nuget/
C:\Builds\2\OE Phase II\Common\bin\xxxxxxx.Web.Http.dll
1 File(s) copied
Attempting to build package from 'xxxxxxx.Web.Http.csproj'.
Packing files from 'C:\Builds\2\OE Phase II\Common\src\WebApi\Web.Http\bin\Release'.
Using 'xxxxxxxs.Web.Http.nuspec' for metadata.
Found packages.config. Using packages listed as dependencies
Successfully created package 'C:\Builds\2\OE Phase II\Common\bin\xxxxxxxs.Web.Http.1.0.0.0.nupkg'.
The API Key 'xxxxxxx' was saved for 'http://tfs12.xxxxxxxrps.com/Nuget'.
Pushing Bxxxxxxxrs.Data 1.0.0.0 to 'http://tfs12.xxxxxxxrps.com/Nuget/'...
Please provide credentials for: http://tfs12.xxxxxxxrps.com/Nuget/
Object reference …Run Code Online (Sandbox Code Playgroud) 我通过props将一个变量从父组件传递给子组件.但是通过一些操作,该变量的值会发生变化,即点击父组件中的某个按钮,但我不知道如何将更新后的值传递给child?假设一个变量的值最初为false,并且父组件中有"编辑"按钮.我在单击"编辑"按钮时更改此变量的值,并希望将更新后的值从父组件传递给子组件.
我目前正在开发一种REST服务,允许控制和监控一些物理设备.
相应的REST API主要基于您可以在以下文章中找到的原则和想法:" 使用REST控制和监视设备 ".
受监视和受控设备可以生成客户端必须能够订阅的一些事件.我的想法是使用RESTful WebHooks实现该部分.
因此,每当发生事件时,我的服务都会向每个订阅者发出REST API回调以通知它.
我的问题,现在:
使用ServiceStack(版本3.9.71)实现此方案的正确方法是什么?
我的服务必须能够将订阅排队并将事件分派给订阅者.它还必须处理客户端关闭或无法访问的情况,并可能重试发送通知.
我是否必须从头开始实现所有内容(例如,使用ServiceStack托管的RedisMqServer)或者是否已经在我的方向上进一步发展?我在Google上搜索得不太成功.
我有一个类定义如下的场景:
class MyObject
{
public DataDictionary MyObjectData { get; set; }
public bool ShouldSerializeMyObjectData() { return true; }
public bool ShouldDeserializeMyObjectData() { return false; }
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用JSON.net序列化/反序列化该类时,它会考虑ShouldSerialize,但不会考虑ShouldDeserialize.
根据文档,两者都应该像我猜的那样工作.有什么特别值得我知道的吗?更一般地说,我应该如何处理我想要序列化属性但不反序列化它的场景?
我正在使用,Json.NET 8.0如果这很重要.
谢谢你的帮助.
我需要查看所有当前连接的隔离级别以找到一些锁定问题.
我尝试过,DBCC Useroptions但它只为我的用户提供了信息.
我想DBCC PSS(0)还是DBCC PSS(1,57)
,但我得到了以下错误:
DBCC语句不正确.检查文档以获取正确的DBCC语法和选项.
在我正在编写的脚本中,我创建了一个专用用户来启动我们内部开发的一些Windows服务.为了启动这些服务,我们的"专用"用户需要SeServiceLogonRight权限.目前,我正在使用ntrights.exe分配该权限,以及来自PowerShell脚本的以下调用:
{.$global:RootInstallDir\..\Common\SupportTools\ntrights.exe -m $env:COMPUTERNAME -u $HealthLinkUser +r SeServiceLogonRight }
Run Code Online (Sandbox Code Playgroud)
但是,我对此并不满意.使用PowerShell必须有一种更简洁的方法.
以下是我想以某种方式实现的目标.
我有一个定义一些对象的自定义程序集.在我的脚本中,我创建了一个自定义对象,我想将其传递给脚本块,保持该对象的行为.
Add-Type -AssemblyName MyCustomDLL
$global:object = new-object MyCustomDLL.MyCustomObject()
$object | gm
$jobWork = { param ($object) $object | gm } # I'd like to keep my object behavior in that block
$job = Start-Job -ScriptBlock $jobWork -ArgumentList $object
Wait-Job $job
Receive-Job $job
Run Code Online (Sandbox Code Playgroud)
我该怎么做或达到同样的效果?谢谢你的帮助
c# ×2
debugging ×2
powershell ×2
.net ×1
c#-7.0 ×1
exception ×1
json.net ×1
nuget ×1
nuget-server ×1
psobject ×1
rest ×1
scope ×1
servicestack ×1
sql ×1
sql-server ×1
t-sql ×1
vue.js ×1
vuejs2 ×1
webhooks ×1