Tag: asp.net

IIS AppPoolIdentity和文件系统写入访问权限

这里有一个IIS 7.5和ASP.NET的问题,我一直在研究和取得任何地方。 任何帮助将不胜感激。 我的问题是:在IIS 7.5中使用ASP.NET,IIS和/或操作系统如何在完全信任的情况下允许Web应用程序写入类似C:\dump的文件夹? 它是如何不必为应用程序池用户明确添加写访问权限(在这种情况下是ApplicationPoolIdentity )? 我知道的很多: 在IIS 7.5中,应用程序池的默认标识是ApplicationPoolIdentity 。 ApplicationPoolIdentity表示一个名为“IIS APPPOOL \ AppPoolName”的Windows用户帐户,该帐户是在创build应用程序池时创build的,其中AppPoolName是应用程序池的名称。 “IIS APPPOOL \ AppPoolName”用户默认是IIS_IUSRS组的成员。 如果在“完全信任”下运行,则Web应用程序可以写入文件系统的许多区域(不包括C:\Users , C:\Windows等文件夹)。 例如,您的应用程序将有权写入某些文件夹,如C:\dump 。 默认情况下, IIS_IUSRS组不具有对C:\dump读取或写入访问权限(至less不能通过Windows资源pipe理器中的“安全性”选项卡进行访问)。 如果您拒绝对IIS_IUSRS写入访问权限,则在尝试写入文件夹时(如预期的那样),将会收到SecurityException。 因此,考虑到所有这些,如何授予“IIS APPPOOL \ AppPoolName”用户的写权限? w3wp.exe进程以该用户身份运行,那么允许此用户写入文件夹似乎没有明确的访问权限? 请注意,我明白这可能是为了方便起见,因为如果您在“完全信任”下运行,授予用户对每个需要写入的文件夹的访问权限是一种痛苦。 如果你想限制这个访问,你总是可以在Medium Trust下运行这个应用程序。 我有兴趣了解操作系统和/或IIS允许这些写入发生的方式,即使似乎没有授予明确的文件系统访问权限。

枚举的JSON序列化为string

我有一个包含enum属性的类,并在使用JavaScriptSerializer序列化对象时,我的json结果包含枚举的整数值而不是其string “name”。 有没有办法让我的JSON中的string枚举,而不必创build一个自定义JavaScriptConverter ? 也许有一个属性,我可以装饰的枚举定义,或对象的财产,与? 举个例子: enum Gender { Male, Female } class Person { int Age { get; set; } Gender Gender { get; set; } } 期望的json结果: { "Age": 35, "Gender": "Male" }

在WebAPI客户端中每次调用创build一个新的HttpClient的开销是多less?

什么应该是WebAPI客户端的HttpClient生存期? 有一个HttpClient实例多个呼叫是更好吗? 什么是创build和处置HttpClient每个请求的开销,如下面的例子(取自http://www.asp.net/web-api/overview/web-api-clients/calling-a-web-api-from -a-net-client ): using (var client = new HttpClient()) { client.BaseAddress = new Uri("http://localhost:9000/"); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // New code: HttpResponseMessage response = await client.GetAsync("api/products/1"); if (response.IsSuccessStatusCode) { Product product = await response.Content.ReadAsAsync>Product>(); Console.WriteLine("{0}\t${1}\t{2}", product.Name, product.Price, product.Category); } }

如何增加ASP.NET中的最大上传文件大小?

我有一个表单,除了在ASP.NET中的file upload。 我需要将最大上传大小增加到4 MB默认值以上。 我在某些地方发现了msdn下面的代码。 [ConfigurationPropertyAttribute("maxRequestLength", DefaultValue = )] 没有任何参考文献实际上描述了如何使用它,我尝试了几件事情,但没有成功。 我只想修改某些要求file upload的页面的属性。 这是正确的路线吗? 我该如何使用这个?

无法将“System.DBNull”types的对象转换为键入“System.String”

我在我的应用程序中得到了上述错误。 这是原始代码 public string GetCustomerNumber(Guid id) { string accountNumber = (string)DBSqlHelperFactory.ExecuteScalar(connectionStringSplendidmyApp, CommandType.StoredProcedure, "GetCustomerNumber", new SqlParameter("@id", id)); return accountNumber.ToString(); } 我换成了 public string GetCustomerNumber(Guid id) { object accountNumber = (object)DBSqlHelperFactory.ExecuteScalar(connectionStringSplendidCRM, CommandType.StoredProcedure, "spx_GetCustomerNumber", new SqlParameter("@id", id)); if (accountNumber is System.DBNull) { return string.Empty; } else { return accountNumber.ToString(); } } 有没有更好的方法呢?

为什么Ajax脚本不在IIS 7.5 Win 2008 R2服务器上运行?

我在开发服务器上有一个在VS 2013上正常工作的Web应用程序,但是一旦我将其发布到IIS 7.5 2008 R2服务器上,位于我的自定义脚本文件上的Ajax脚本就不再工作,尽pipe其他JQuery脚本不调用Ajax的function可以正常工作。 还有什么需要做的,以便有一个Ajax在服务器上工作? 我已经阅读了一些文章,但还找不到答案。 我在IIS和Ajax方面的经验有限。 //更新: 我已经发现Ajax脚本可以工作,而且问题很可能出现在下面一行: “url:'/ Home / GetRates',//请求的URL” 使用debuger,我发现GetRates()函数在远程服务器中没有被调用,尽pipe它在本地(在VS 2013)开发服务器中。 我看到的唯一区别是path,但不知道如何解决它。 下面是Ajax脚本: // Retrieve rates and update partial view $(function () { $('#reservSearch').submit(function () { if ($(this).valid()) { $("#theModal").modal("show"); // Display the in progress….. $.ajax({ url: '/Home/GetRates', // URL for the request data: $("#reservSearch").serialize(), // the data to send […]

ASP.NET Web API – 不允许PUT&DELETE动词 – IIS 8

我最近从Visual Studio 2010升级到Visual Studio 2012 RC。 安装程序还会安装Visual Studio现在用作默认Web服务器的IIS 8 Express。 IIS 8阻止使用PUT和DELETE动词的WEB API请求。 IIS返回一个405错误, The requested resource does not support http method 'PUT' 。 我知道以前有人遇到这个问题,Stack Overflow有几个关于它的信息。 使用IIS 7 Express解决scheme是卸载WebDav。 不幸的是我没有看到任何方式与IIS 8做到这一点。 我已经尝试从applicationhost.config编辑WebDav部分,但没有帮助。 例如,我从configuration文件中删除了<add name="WebDAVModule" image="%IIS_BIN%\webdav.dll" /> 。 我在这上面花了太多时间。 必须有一个简单的方法来启用PUT和DELETE?

entity framework:“存储更新,插入或删除语句影响了意外数量的行(0)”。

我正在使用entity framework来填充网格控件。 有时当我进行更新时,出现以下错误: 存储更新,插入或删除语句影响了意外数量的行(0)。 实体被加载后,实体可能已被修改或删除。 刷新ObjectStateManager条目。 我无法弄清楚如何重现这一点。 但是这可能与我做出更新的距离有多大关系。 有没有人看到这个或没有人知道错误信息是指什么? 编辑:不幸的是,我不再可以重现我在这里所遇到的问题,因为我离开了这个项目,不记得我是否最终find了解决scheme,是否有其他开发者修复了这个问题,或者我是否解决了这个问题。 所以我不能接受任何答案。

WCF – 如何增加邮件大小配额

我有一个WCF服务,从数据库返回1000个logging到客户端。 我有一个ASP.NET的WCF客户端(我已经在asp.net的Web应用程序项目中添加服务引用,以消耗WCF)。 我运行客户端应用程序时收到以下消息: 传入消息的最大消息大小限额(65536)已被超出。 要增加配额,请在适当的绑定元素上使用MaxReceivedMessageSize属性。 任何帮助? 如何增加邮件大小限额?

从JavaScript调用ASP.NET函数?

我在ASP.NET中编写一个网页。 我有一些JavaScript代码,并有一个点击事件的提交button。 是否有可能调用我在ASP中使用JavaScript的click事件创build的方法?