小编Dan*_*ell的帖子

静态/动态与强/弱

我看到这些术语在编程中遍布各地,我对它们的含义有一个模糊的概念.搜索显示,事实上,这些事情已被问到堆栈溢出.据我所知,语言中的静态/动态类型与强/弱类型略有不同,但这种差异是我的意思.不同的来源似乎使用不同的含义甚至可以互换地使用这些术语.我找不到谈论两者的地方,实际上说明了差异.如果有人能够在这里为我和世界其他地方清楚地说明这一点,那会更好.

terminology static-typing weak-typing strong-typing dynamic-typing

303
推荐指数
9
解决办法
6万
查看次数

表单auth重定向css/script包含到HTTP 302的登录页面

我在登录页面,css文件和js文件中有一些包含.

<link rel="stylesheet" type="text/css" href="../../ext/resources/css/ext-all.css" />
<script type="text/javascript" src="../../ext/bootstrap.js"></script>
Run Code Online (Sandbox Code Playgroud)

不幸的是,浏览器为这些请求获得了302响应.Forms Auth将请求视为未经授权并将其重定向到登录页面.它没有意识到请求首先来自登录页面.

GET http://localhost:50880/ext/resources/css/ext-all.css HTTP/1.1

HTTP/1.1 302 Found
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/Account/LogOn?ReturnUrl=%2fext%2fresources%2fcss%2fext-all.css">here</a>.</h2>
</body></html>
Run Code Online (Sandbox Code Playgroud)

我想也许设置包含文件夹(ext)的权限可能对每个人都有帮助.

我在其他项目中没有遇到过这个问题.

asp.net-mvc forms-authentication http-status-code-302

43
推荐指数
4
解决办法
2万
查看次数

C#Casting性能影响

在C#中使用'as'关键字使转换失败时,返回null.背景中发生了什么?它只是简单地抑制异常,所以我不必为失败编写处理代码吗?

我对它的性能特征感兴趣,而不是用try-catch包裹的典型演员.

c#

20
推荐指数
2
解决办法
4180
查看次数

添加对ASP.NET Web API服务的服务引用

我有一个MVC解决方案,它为Web API服务提供了一些路由.在某些情况下,我将使用简单的HTTP get从JavaScript中调用它们.在其他方面,我想从一些.NET代码中调用它们,也许是另一个MVC应用程序.

有没有办法为这些Web API端点添加服务引用,并让工具创建代理客户端和CLR类型,就像使用典型的WCF服务一样?我知道这里没有SOAP,但我确实读过它是可能的,而不是如何.

c# wcf proxy-classes asp.net-web-api

18
推荐指数
2
解决办法
1万
查看次数

查询XmlDocument而不会得到"未定义名称空间前缀"问题

我有一个Xml文档,它定义和引用一些命名空间.我将它加载到XmlDocument对象中,据我所知,我创建了一个XmlNamespaceManager对象,用它来查询Xpath.问题是我得到了XPath异常,命名空间"my"没有定义.如何让命名空间管理器看到我引用的命名空间已经定义.或者更确切地说,如何从文档到命名空间管理器获取命名空间定义.

此外tt让我感到奇怪的是,您必须首先为文档名称表创建的文档提供命名空间管理器.即使您需要对手动命名空间进行硬编码,为什么不能将它们直接添加到文档中.为什么总是必须在每个查询中传递此命名空间管理器?什么不能XmlDocument只知道?

码:

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(programFiles + @"Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\HfscBookingWorkflow\template.xml");
XmlNamespaceManager ns = new XmlNamespaceManager(xmlDoc.NameTable);

XmlNode referenceNode = xmlDoc.SelectSingleNode("/my:myFields/my:ReferenceNumber", ns);
referenceNode.InnerXml = this.bookingData.ReferenceNumber;

XmlNode titleNode = xmlDoc.SelectSingleNode("/my:myFields/my:Title", ns);
titleNode.InnerXml = this.bookingData.FamilyName;
Run Code Online (Sandbox Code Playgroud)

XML:

  <?xml version="1.0" encoding="UTF-8" ?> 
  <?mso-infoPathSolution name="urn:schemas-microsoft-com:office:infopath:Inspection:-myXSD-2010-01-15T18-21-55" solutionVersion="1.0.0.104" productVersion="12.0.0" PIVersion="1.0.0.0" ?> 
  <?mso-application progid="InfoPath.Document" versionProgid="InfoPath.Document.2"?> 
  <my:myFields xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:my="http://schemas.microsoft.com/office/infopath/2003/myXSD/2010-01-15T18:21:55" xmlns:xd="http://schemas.microsoft.com/office/infopath/2003">
  <my:DateRequested xsi:nil="true" /> 
  <my:DateVisited xsi:nil="true" /> 
  <my:ReferenceNumber /> 
  <my:FireCall>false</my:FireCall> 
Run Code Online (Sandbox Code Playgroud)

更新:

ns.AddNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
ns.AddNamespace("xhtml", "http://www.w3.org/1999/xhtml");
ns.AddNamespace("xd", "http://schemas.microsoft.com/office/infopath/2003");
ns.AddNamespace("my", "http://schemas.microsoft.com/office/infopath/2003/myXSD/2010-01-15T18:21:55");
Run Code Online (Sandbox Code Playgroud)

这样做,但这意味着我必须硬编码到这个特定的xml架构.此架构表示infopath表单模板.特别是我的命名空间url对于每个表单模板都是不同的,所以我真的不想硬编码.很高兴找到一种从xml获取此命名空间的简洁方法,而无需使用RegEx.

我希望XmlNamespaceManager只是从NameTable中获取命名空间定义.我的意思是他们在Xml中,但我仍然需要定义它们.

.net c# xml

11
推荐指数
1
解决办法
3万
查看次数

从单个Url打开SPWeb

当我想要访问网络时,我通常必须执行以下代码,这些代码相当自我解释.

using (SPSite site = new SPSite(siteUrl))
            {
                SPWeb web = null;

                if (string.IsNullOrEmpty(webName))
                    web = site.RootWeb;
                else
                    web = site.AllWebs[webName];
                ...
                web.Close();
            }
Run Code Online (Sandbox Code Playgroud)

给出一个直接指向网站的网址:

所以在这种情况下,siteUrl将是:http:// localhost/sites/testsite

和webName将是:testWeb

我想简单地从用户那里得到一些与这两个单独位相对的信息,即直接到网址的URL:http:// localhost/sites/testsite/testweb /

我想使用此URL打开Web,而不必手动指定Web名称.我玩过site.OpenWeb并尝试将url传递给它,但它不喜欢这样.它只需要服务器相对URL.有没有办法只是能够从用户那里获得一个网址,以便打开网络,而不是将网址分开并假设最后一点可能是也可能不是网络的名称,这取决于我们是否"是否会访问根网站,但这会使代码更糟糕.

sharepoint

11
推荐指数
1
解决办法
3万
查看次数

Microsoft.Web.Administration.ServerManager在IISExpress applicationHost.config中查找错误的目录

尝试在当前计算机上获取应用程序池时,我遇到了一个奇怪的问题.似乎在安装IISExpress时,除了完整的IIS之外,Microsoft代码还要检查IISExpress.IISExpress为每个用户使用单独的applicationHost文件.我不确定这个电话是否会要求它检查所有这些,或者只是当前用户的那些.无论如何,它找不到它在'C:\ Windows\system32\config\systemprofile \'目录中寻找的那个.对于正在运行此代码的应用程序池运行的用户,应该转到%userprofile%或'C:\ Users\Administrator \'.

有谁知道这个systemprofile目录可能来自哪里?

Exception:-
System.IO.DirectoryNotFoundException: Filename: \\?\C:\Windows\system32\config\systemprofile\Documents\IISExpress\config\applicationHost.config
Error: Cannot read configuration file


   at Microsoft.Web.Administration.Interop.AppHostWritableAdminManager.GetAdminSection(String bstrSectionName, String bstrSectionPath)
   at Microsoft.Web.Administration.Configuration.GetSectionInternal(ConfigurationSection section, String sectionPath, String locationPath)
   at Microsoft.Web.Administration.ServerManager.get_ApplicationPoolsSection()
   at Microsoft.Web.Administration.ServerManager.get_ApplicationPools()
   at CustomCode.Classes.IIsApplicationPool.GetApplicationPool(String iisWebSitePath, String poolName)
Run Code Online (Sandbox Code Playgroud)

iis iis-express

11
推荐指数
3
解决办法
1万
查看次数

Visual Studio的浏览器链接功能是否能够使用Web套接字?

我知道SignalR用于使用注入的动脉脚本与客户端浏览器进行通信.我有一个似乎常见的问题,那就是我的浏览器的网络日志中填充了如下所示的条目:

.../arterySignalR /民意调查?运输= longPolling&connectionToken = ...

这告诉我SignalR已经回归到长轮询,而不是使用网络套接字.假设我们有一个支持Web套接字的浏览器,并且该浏览器在localhost上运行,那么SignalR默认不应该使用Web套接字吗?什么可能导致它回归长期民意调查?

long-polling websocket signalr browser-link

11
推荐指数
1
解决办法
1875
查看次数

在文件系统中获取ASP.NET MVC站点的路径

我有一个ASP.NET MVC项目,它有一个名为emails的子文件夹.这包含我的电子邮件模板的HTM文件.在网站的某些位置,我有一个控制器,需要加载其中一个模板并将其作为电子邮件发送.

我正在尝试做的是使用反射来获取当前正在执行的程序集的路径,但它没有像我期望的那样工作.我回来的路是:

var directory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
Run Code Online (Sandbox Code Playgroud)

'C:\ Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET iles\ssl\1da130c4\f8e7810e\assembly\dl3\5f253aca\1a71f123_e83bcc01\Emails\ProductAccountConfirmation.htm'

我发现这很奇怪,因为该站点是通过Visual Studio在IIS中托管的.我原以为这会给我在dev的项目文件夹中的dll位置和生产中的IIS的deploy文件夹.

asp.net reflection asp.net-mvc path

8
推荐指数
1
解决办法
1万
查看次数

以编程方式取消SharePoint工作流

在我想要处理的工作流内部和错误,例如无法查找我想要分配任务的用户名.因此用户名不存在,我将通过电子邮件通知管理员,将其记录到工作流历史记录中,然后终止工作流.

问题是,如何从工作流内部终止工作流,就像我单击SharePoint网页上的"终止工作流"按钮一样.

[更新]我尝试过SPWorkflowManager.CancelWorkflow()确实取消了工作流程,但没有立即取消.取消运行的代码会发生什么,但随后我的工作流程继续创建下一个任务,然后在下一个任务onTaskChanged活动时进入休眠状态.只有一旦它进入睡眠状态,工作流程才会终止,而不是在调用CancelWorkflow时.

这导致了一个明显的问题,即我不希望创建下一个任务.我正在调用CancelWorkflow,因为我希望它取消当时和那里.

c# sharepoint workflow

7
推荐指数
1
解决办法
2万
查看次数