我使用xp_cmdshell挂起问题.
调用可执行文件,执行其工作并退出.由于exe中的ui提示,它不会挂起.exe根本没有悬挂.exe从任务管理器中的进程列表中消失,并且来自exe的内部日志记录确认它执行了main函数中的最后一行
对xp_cmdshell的调用不会在SQL中返回控件.它挂在那一行(它是批处理的最后一行).杀死这个过程是无效的.它实际上需要重启sql server来摆脱挂起的进程(呃)
挂起仅在第一次运行时发生.只要第一个挂起,对具有相同参数的过程的后续调用就会正常工作并正确退出.重新启动SQL后,第一个后续调用将再次挂起.
如果它有任何区别,我试图从exe接收返回值 - 我的sql过程结束于:
exec @i = xp_cmdshell @cmd; 回来@i;
Activity Monitor报告的进程是停留在等待类型的PREEMPTIVE_OS_PROCESSOPS(其他开发人员看到的)或PREEMPTIVE_OS_PIPEOPS(我在当前测试中看到的)
有任何想法吗?
我首先使用Entity Framework代码来访问一组表,这些表的键将由默认约束中的基于int的SEQUENCE设置.EF似乎无法处理这个问题,它坚持在插入后使用SCOPE_IDENTITY来填充整数键字段.
深入研究代码,看起来有点硬编码:
在页面的中间稍微查看IsValidScopeIdentityColumnType方法.如果此方法返回true,则使用SCOPE_IDENTITY()检索插入的Key值,否则将生成OUTPUT子句.(Guid/uniqueidentifier是那里的典型用例).
// make sure it's a primitive type
if (typeUsage.EdmType.BuiltInTypeKind != BuiltInTypeKind.PrimitiveType)
{
return false;
}
// check if this is a supported primitive type (compare by name)
var typeName = typeUsage.EdmType.Name;
// integer types
if (typeName == "tinyint"
|| typeName == "smallint"
||
typeName == "int"
|| typeName == "bigint")
{
return true;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法欺骗这个方法为整数字段返回false?一旦我开始看到像'EDMType'这样的东西,我就超出了我对EF映射真正起作用的真正理解.也许有一些方法可以使用用户定义的类型来欺骗它?但它确实是.NET方面的配置需要某种更新.
另请参阅同一文件中的UseGeneratedValuesVariable方法,了解其使用方法...
我不清楚为什么OUTPUT不仅仅是全面使用 - 也许是性能?
我有一个常见的情况,我有用户输入使用HTML的子集(输入tinyMCE).我需要一些针对XSS攻击的服务器端保护,并且我正在寻找一个经过充分测试的工具,人们正在使用它来做这件事.在PHP方面,我看到许多像HTMLPurifier这样的库可以完成这项工作,但我似乎无法在.NET中找到任何东西.
我基本上是在寻找一个库来过滤到标签的白名单,这些标签上的属性,并使用"href"和"img:src"等"难"属性做正确的事情.
我在http://refactormycode.com/codes/333-sanitize-html上看过Jeff Atwood的帖子,但我不知道它是最新的.它对网站目前使用的内容有什么影响吗?无论如何,我不确定我是否对尝试重新输出有效输入的策略感到满意.
这篇博客文章列出了一个看起来更具吸引力的策略:
此方法实际上是将HTML解析为DOM,验证它,然后从中重建有效的HTML.如果HTML解析可以合理地处理格式错误的HTML,那么很棒.如果不是,没什么大不了的 - 我可以要求格式良好的HTML,因为用户应该使用tinyMCE编辑器.在任何一种情况下,我都在重写我所知道的安全,格式良好的HTML.
问题是,这只是一个描述,没有指向实际执行该算法的任何库的链接.
这样的图书馆存在吗?如果没有,什么是一个很好的.NET HTML解析引擎?什么正则表达式应该用于执行额外的验证a:href,img:src?我错过了其他重要的东西吗?
我不想在这里重新实现一个车轮.当然有一些常用的库.有任何想法吗?
我正在使用以下有关链接按钮的问题的答案:
问题在于TextDecoration Underline样式仅应用于自动生成的TextBlocks。
<Button Style="{StaticResource LinkButton}">Text</Button>
Run Code Online (Sandbox Code Playgroud)
带下划线的“文字”
<Button Style="{StaticResource LinkButton}"><TextBlock Text='Text' /></Button>
Run Code Online (Sandbox Code Playgroud)
“文字”未加下划线
为什么它不适用于内容中的任何TextBlock?
这是样式的相关部分:
<Style x:Key="LinkButton"
TargetType="Button"
BasedOn="{StaticResource ResourceKey={x:Type Button}}"
>
<Setter Property="Width" Value="Auto"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<ContentPresenter Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
VerticalAlignment="Center"
>
<ContentPresenter.Resources>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="TextDecorations" Value="Underline" />
</Style>
</ContentPresenter.Resources>
</ContentPresenter>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud) 我不确定构建此测试的正确方法.我在这里有一个视图模型:
public class ViewModel
{
public ReactiveCommand PerformSearchCommand { get; private set; }
private readonly ObservableAsPropertyHelper<bool> _IsBusy;
public bool IsBusy
{
get { return _IsBusy.Value; }
}
public ViewModel(IAdventureWorksRepository _awRepository)
{
PerformSearchCommand = new ReactiveCommand();
PerformSearchCommand.RegisterAsyncFunction((x) =>
{
return _awRepository.vIndividualCustomers.Take(1000).ToList();
}).Subscribe(rval =>
{
CustomerList = rval;
SelectedCustomer = CustomerList.FirstOrDefault();
});
PerformSearchCommand.IsExecuting.ToProperty(this, x => x.IsBusy, out _IsBusy);
PerformSearchCommand.Execute(null); // begin executing immediately
}
}
Run Code Online (Sandbox Code Playgroud)
依赖项是AdventureWorks的数据访问对象
public interface IAdventureWorksRepository
{
IQueryable<vIndividualCustomer> vIndividualCustomers { get; }
}
Run Code Online (Sandbox Code Playgroud)
最后,我的测试看起来像这样:
[TestMethod]
public void TestTiming()
{ …Run Code Online (Sandbox Code Playgroud) 我们正在寻找一种方法来记录对Oracle中存储过程的任何调用,并查看用于调用的参数值.
我们使用的是Oracle 10.2.0.1
我们可以记录SQL语句并查看绑定变量,但是当我们跟踪存储过程时,我们会看到绑定变量B1,B2等,但没有值.
我们希望看到我们在MS SQL Server Profiler中看到的相同类型的信息.
谢谢你的帮助
我正在从C#应用程序进行异步Web服务调用:
{
//Put UI in 'loading' state
...
//Now call web service
webServiceProxy.BeginMyMethod(param, new AsyncCallback(MyCallback), null);
}
private void MyCallback(IAsyncResult res)
{
...
//process result
// Put UI back in normal state (yes I'm marshalling back to the UI thread)
}
Run Code Online (Sandbox Code Playgroud)
主线程将应用程序置于"等待"模式,然后回调函数的结束重新启用控件.我偶尔会看到一个错误,UI在加载模式下永远陷入困境.
现在回调代码中可能只有一个错误(那里有相当多的错误),但我对社区的问题是:
"MyCallback"是否值得被称为?假设"BeginMyMethod"没有抛出异常,我可以确定MyCallback会被执行吗?我在BeginXXX函数返回的IAsyncResult上看到"CompletedSynchronously"和"IsCompleted",但我不确定这是否重要.
假设我有这些数据:
Employee Task IsCurrent
-------- ---- ---------
Jeff 1 Yes
Jeff 2 No
Jane 1 No
Jane 2 Yes
Jane 3 No
Jane 4 No
Jake 1 Yes
Run Code Online (Sandbox Code Playgroud)
员工有一些任务,其中一个是最新的.任务编号表示一个排序 - 他们按顺序执行任务,当他们完成最后一个任务时循环回到开头.我想查询以查看接下来的三个任务.我想要这个结果集:
Employee CurrentTask NextTask NextTask2
-------- ----------- -------- ---------
Jeff 1 2 1
Jane 2 3 4
Jake 1 1 1
Run Code Online (Sandbox Code Playgroud)
这可能吗?我正在使用SQL 2005
更新:对不起,我没有说清楚任务编号不一定是后续的 - 即Mike可能实际上有任务10,23和223.所以我不能只是加入寻找下一个顺序任务编号.
.net ×2
c# ×2
oracle ×1
pivot ×1
reactiveui ×1
sql ×1
sql-server ×1
styles ×1
t-sql ×1
testing ×1
web-services ×1
whitelist ×1
wpf ×1
xp-cmdshell ×1
xss ×1