草庐IT

虚拟机高可用

全部标签

c# - 如何将虚拟路径映射到物理路径?

我知道我可以通过HostingEnvironment(Microsoft.AspNet.Hosting命名空间)获取WebRoot。我需要根据在我的Web应用程序中的IIS中创建的虚拟路径获取物理路径。在IIS中,网站根目录指向我发布的站点的wwwroot,IIS中添加了一个虚拟目录,它指向我的wwwroot之外的文件夹。我希望我能得到那个虚拟目录的物理路径。在MVC5或更早版本中,我可以使用HostingEnvironment.MapPath(System.Web命名空间)或Server.MapPath,在MVC6中我应该怎么做?编辑:不是虚拟路径而是IIS中添加的虚拟目录。我希望我

c# - 我应该使用什么作为虚拟等待?

我有一个基类,它提供了一个具有以下签名的方法:virtualasyncTaskRunAsync()派生类应该用类似的东西覆盖这个实现publicoverrideasyncTaskRunAsync(){awaitbase.RunAsync();awaitthis.DoSomethingElse();}现在,编译器警告我Base.RunAsync缺少await语句。我希望我的代码没有警告,而不是抑制警告,并且即使派生类不提供覆盖实现,它也无需提供null检查即可运行,因此使用virtualTaskRunAsync()(省略async关键字)是不可能的。目前,基本方法中的实现是awaitTa

c# - 使用 IIS7 通过 c#/asp.net 网页访问虚拟目录(映射驱动器)

所以我有服务器A和服务器B。服务器A:WindowsServer2008R2服务器B:WindowsServer2003网页使用的是framework4.0,用VS2013ProRC制作在服务器A上,我的asp.net/c#网页在IIS7上运行在服务器B上我有一个共享文件夹。现在我已经将此共享文件夹从服务器B映射到服务器A,并且可以通过桌面\Windows资源管理器完全访问它,但是从网页访问该文件夹是另一回事。要访问该文件夹,我在IIS7中所做的是,在同一网页下创建一个虚拟文件夹,并将其指向映射的驱动器。如果文件夹在同一台服务器A上,这当然会起作用,但由于它在不同的服务器B上,我收到以

c# - 如何使 DockPanel 中的项目扩展以适应 WPF 中的所有可用空间?

我有一个StackPanel包含一个StackPanel和一些其他项目。第一个StackPanel是垂直方向,里面的是水平方向。内部有一个TreeView和一个ListView,我希望它们展开并适合窗口的宽度,我由窗口设置并允许用户更改.我还希望外部StackPanel适合窗口的高度。我该怎么做?编辑:我已经转换为使用DockPanel,并在每个元素中正确设置了DockPanel.Dock属性,并禁用了LastChildFill在两个停靠面板中,布局仍然没有拉伸(stretch)。代码: 最佳答案 改用DockPanel。Stack

c# - 在 C# 中模拟非虚拟方法

这个问题在这里已经有了答案:Howtomocknonvirtualmethods?(8个答案)关闭11个月前。我正在尝试测试我使用模拟创建的一些类,但我发现c#中的所有免费模拟框架都无法模拟非虚拟方法(如果它不在接口(interface)中)。但是,有TypeMock可以做到这一点,所以这是可能的。任何人都可以展示如何去做吗?如果我能做到这一点,我什至可能会尝试为开源框架做出贡献。提前致谢

c# - 如何使用 C# 代码获取可用 SQL Server 的列表?

我已经创建了一个桌面应用程序。在应用程序启动时,我想显示本地PC上所有可用SQLServer实例的列表,并允许选择要连接的SQLServer名称。有没有办法获取本地PC上可用的所有SQLServer实例名称的列表?非常感谢。 最佳答案 stringmyServer=Environment.MachineName;DataTableservers=SqlDataSourceEnumerator.Instance.GetDataSources();for(inti=0;i 关于c#-如何使用

c# - 为什么 DynamicProxy 的拦截器不会为 *each* 虚拟方法调用调用?

一个例子最能说明问题:publicinterfaceIA{voidfoo();voidbar();}publicclassA:IA{publicvirtualvoidfoo(){Console.Write("foo");bar();//callvirtualmethod}publicvirtualvoidbar(){Console.Write("bar");}}publicclassInterceptor:IInterceptor{publicvoidIntercept(IInvocationinvocation){Console.WriteLine("Intercepted:"+in

c# - 等待 TcpClient 数据可用的最佳方式?

while(TcpClient.Client.Available==0){Thread.Sleep(5);}有更好的方法吗? 最佳答案 当然!只需在流上调用Read(...)即可。这将阻塞直到数据可用。除非您真的必须直接使用TcpClient,否则我通常会尽可能多地在流上进行操作。如果您想使用套接字,只需调用Receive(byte[])它将阻塞直到数据可用(或套接字关闭)。现在如果不想阻塞,可以使用Stream.BeginRead或Socket.BeginReceive异步工作。(或从.NET4.5开始的ReadAsync。)我个

c# - 为什么 FakeItEasy 抛出这个异常,为什么使方法成为虚拟方法来修复它?

我有一个测试(代码在下面)来测试Method1调用Method2。我得到的异常是Thecurrentproxygeneratorcannotinterceptthespecifiedmethodforthefollowingreason:-Sealedmethodscannotbeintercepted.被测方法本身并未密封。但是,它确实依赖密封类(第三方类,我无法为其创建包装器以正确模拟它-另一个问题的另一个主题)。无论哪种方式,此时我都没有要求FakeItEasy模拟密封类。在调试我的测试时,当调用依赖项时,我可以清楚地看到正在生成一个真实的对象,而不是假的。然而,鉴于错误消息,我

c# - .Net 中可用的并行技术

我是.Net平台的新手。我搜索了一下,发现在.Net中有几种方法可以进行并行计算:任务并行库中的并行任务,即.Net3.5。PLINQ、.Net4.0异步编程,.Net2.0,(异步主要用于执行I/O繁重的任务,F#具有支持此功能的简洁语法)。我列出这个是因为在Mono中,似乎没有TPL或PLINQ。因此,如果我需要编写跨平台并行程序,我可以使用异步。.Net线程。没有版本限制。您能否就这些给出一些简短的评论或在此列表中添加更多方法? 最佳答案 您确实需要进行大量研究才能确定如何有效地使用多线程。有一些不错technicalarti