小编Sve*_*ang的帖子

删除字符串中特定字符后的字符,然后删除子字符串?

当这看起来很简单并且有很多关于字符串/字符/正则表达式的问题时,我觉得有点愚蠢的发帖,但我找不到我需要的东西(除了另一种语言:删除所有文本后某些点).

我有以下代码:

[Test]
    public void stringManipulation()
    {
        String filename = "testpage.aspx";
        String currentFullUrl = "http://localhost:2000/somefolder/myrep/test.aspx?q=qvalue";
        String fullUrlWithoutQueryString = currentFullUrl.Replace("?.*", "");
        String urlWithoutPageName = fullUrlWithoutQueryString.Remove(fullUrlWithoutQueryString.Length - filename.Length);

        String expected = "http://localhost:2000/somefolder/myrep/";
        String actual = urlWithoutPageName;
        Assert.AreEqual(expected, actual);
    }
Run Code Online (Sandbox Code Playgroud)

我在上面的问题中尝试了解决方案(希望语法是相同的!)但不是.我想首先删除queryString,它可以是任何可变长度,然后删除页面名称,也可以是任何长度.

如何从完整的URL中删除查询字符串,以便此测试通过?

.net c# string

129
推荐指数
4
解决办法
28万
查看次数

用户'DOMAIN\MACHINENAME $'登录失败

我知道这几乎是重复的:错误"登录失败,用户NT AUTHORITY\IUSR""在ASP.NET和SQL Server 2008用户登录失败"用户名" -在外部System.Data.SqlClient.SqlException与LINQ项目/类库但有些东西与我服务器上的其他应用程序相比并没有加起来,我不知道为什么.

正在使用的盒子:

Web Box
SQL框
SQL测试框

我的应用程序:

我有一个ASP.NET Web应用程序,它引用了一个使用LINQ-to-SQL的类库.连接字符串在类库中正确设置.按照在外部项目/类库System.Data.SqlClient.SqlException与LINQ -用户登录失败"用户名"我还添加了此连接字符串的Web应用程序.

连接字符串使用SQL凭据(在Web应用程序和类库中):

 <add name="Namespace.My.MySettings.ConnectionStringProduction"
        connectionString="Data Source=(SQL Test Box);Initial Catalog=(db name);Persist Security Info=True;User ID=ID;Password=Password"
        providerName="System.Data.SqlClient" />
Run Code Online (Sandbox Code Playgroud)

此连接通过将其添加到服务器资源管理器确认为正常工作.这是我的.dbml文件正在使用的连接字符串.

问题:

我收到以下错误:

System.Data.SqlClient.SqlException: Login failed for user 'DOMAIN\MACHINENAME$'.
Run Code Online (Sandbox Code Playgroud)

现在引用ASP.NET和SQL Server 2008中的错误"登录失败的用户'NT AUTHORITY\IUSR'"它说真的是本地网络服务并且使用任何其他非域名都不起作用.

但我很困惑,因为我检查了SQL Box和SQL Test Box SQL Management Studio,并且都NT AUTHORITY/NETWORK SERVICE在安全 - >登录,在数据库级别,未列在安全 - >用户下,但在数据库级别安全 - >用户我将用户显示在连接字符串中.

在Web服务器上的NTFS级别,权限使NETWORK SERVICE具有完全控制权.

我之所以感到困惑,是因为我的Web服务器上有许多其他Web应用程序,它们在SQL Box和SQL Test Box上引用数据库,它们都可以工作.但除了我使用类库之外,我找不到它们和我当前的应用程序之间的区别.那会有关系吗?检查NTFS权限,服务器和数据库级别的安全登录设置,连接字符串和连接方法(SQL Server凭据)以及IIS应用程序池和其他文件夹选项都是相同的.

为什么这些应用程序在没有将machinename $添加到我的任何一个SQL框的权限的情况下工作?但这就是一个链接告诉我要解决这个问题的方法.

.net sql-server iis-6 web-applications sql-server-2005

115
推荐指数
9
解决办法
16万
查看次数

无法加载文件或程序集HRESULT:0x80131515(将控制器添加到在网络驱动器上具有程序集引用的MVC项目时)

我已经看到了这个:VSTS 2010 SGEN:错误:无法加载文件或程序集(HRESULT的异常:0x80131515)并且没有任何答案有效.当我构建或任何东西时它也不会出现.我可以运行该项目,当我尝试添加一个实体框架模板控制器时会发生这种情况:

控制器设置

然后我收到这个错误:

错误信息

所有项目文件都在我的网络共享上,因为这是我的文档所在的工作所在.这是我尝试过的:

1)将项目设置中的发电机序列化装配转为开,关和自动.

2)使用以下代码将sgen.exe.config添加到C:\ Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0工具:

<configuration>
 <runtime>
   <loadFromRemoteSources enabled="true" />
 </runtime>
</configuration>
Run Code Online (Sandbox Code Playgroud)

3)尝试取消阻止程序集,但我在属性选项卡中没有取消阻止选项. 没有解锁选项

这些解决方案都不起作用.有谁知道如何解决这个问题??? 对于来自nuget或我自己的项目的任何自定义程序集,由于它们在网络空间中的位置而发生此错误,但仅在尝试添加EF模板控制器时发生.我可以构建并运行程序.

asp.net-mvc assemblies visual-studio-2010 .net-assembly

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

无法使用Elmah MVC访问生产服务器上的/ elmah?

我安装了elmah.mvc nuget软件包并保留了默认配置,即设置发送电子邮件并将其插入SQL数据库.

在我使用Visual Studio主机的本地计算机上,我可以打开我的应用程序并访问/ elmah罚款以查看错误报告.但是,当我尝试访问/ elmah生产时,我得到两个错误,首先我收到403 access is denied服务器错误.然后在我的电子邮件中(来自elmah)我得到:

System.Web.HttpException: Server cannot set status after HTTP headers have been sent.
Run Code Online (Sandbox Code Playgroud)

任何人都知道这里发生了什么以及如何解决?谢谢.

到目前为止,我尝试了以下答案的建议:

<system.webServer>

<handlers>
  <add name="elmah" verb="GET" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah"/>
</handlers>
Run Code Online (Sandbox Code Playgroud)

并在 <system.web>

<httpHandlers>
<add verb="POST,GET,HEAD" path="elmah.axd" type="Elmah.ErrorLogPageFactory, Elmah" />
</httpHandlers>
Run Code Online (Sandbox Code Playgroud)

我尝试将路径设置为两者elmah.axd并且简单~/elmah.所有仍然给出相同的错误,仍然在本地工作,但不在生产中.

编辑:它实际上也适用于我远程进入服务器并通过浏览器访问它(不使用localhost,但实际的站点地址).那么我没有什么许可?好像它是在服务器级别.

c# asp.net-mvc elmah http-status-code-403

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

Ajax请求使用POST使用MVC和$ .ajax调用返回HTTP错误500?

我已经看过几个关于这个的线程,我已经尝试了所有的答案(ASP.NET MVC JsonResult返回500)

我的ajax请求正在重新发送500内部错误.如果我调试我甚至从未接受过我的行动.

这是我的ajax电话:

$.ajax({
                    url: '@Url.Action("UpdateSortOrder", "FormItems")',
                    data: { itemToUpdateId: item.attr("id"), newParentItemId: parentItemId, newPreviousItemId: previousItemId },
                    type: 'POST',
                    success: function (data) {
                        console.log(data);
                    },
                    error: function (xhr, status, exception) {
                        console.log("Error: " + exception + ", Status: " + status);
                    }
                });
Run Code Online (Sandbox Code Playgroud)

我的行动:

[HttpPost]
    public ActionResult UpdateSortOrder(Guid itemToUpdateId, Guid newParentItemId, Guid newPreviousItemId)
    {
        FormItem updatedItem = _formItemService.GetOne(x => x.Id == itemToUpdateId);

        return Json(updatedItem, JsonRequestBehavior.DenyGet);
    }
Run Code Online (Sandbox Code Playgroud)

使用chrome控制台,这些是来自回复的响应标头:

HTTP/1.1 500内部服务器错误缓存控制:私有内容类型:text/html; charset = utf-8服务器:Microsoft-IIS/7.5 X-AspNetMvc-版本:3.0 X-AspNet-版本:4.0.30319 X-Powered-By:ASP.NET日期:星期二,2012年12月18日21:53:41 GMT内容长度:17041

服务器日志不显示子状态代码.知道我在这里做错了什么吗?我更喜欢使用POST而不是GET. …

asp.net-mvc jquery asp.net-ajax

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

实体框架4,继承vs扩展?

每种方法有哪些优点/缺点?

我知道我已经在书籍或本网站的某处读过为什么使用表继承对于Entity Framework 4来说很糟糕.

例如,为什么不创建一个具有entityId,datecreated,datemodified的表,然后让其他所有类继承实体框架中的那个?然后我的所有其他实体的表不需要这些列.然后我可以让一个人类继承那个基类,然后一个特定的人继承人.

除了编写一个较小的SQL脚本来生成数据库之外,我不确定这个的好处......

我看到的缺点是,它直接在SQL中查询/查看数据是一个很大的痛苦(所有相关信息在这么多表中被打破),我也问过我的朋友说:

更改应用程序代码比更改和迁移数据库数据更容易,因为大多数经验不足的开发人员接近他们接受继承的问题.我第一次开始开发的时候也是这样做的.它在逻辑上是有道理的.但是,一旦开发很长一段时间,你就会发现委托是最好的方法(服务在soa的情况下调用服务),而且单一用途的服务提供了比继承更多的重用."

这对我来说也很有意义.

所以

1)一般来说,继承与扩展的利弊是什么
2)在上面的具体例子中,什么更合适?
3)如果我的例子对于其中一个或两个都很糟糕,那么使用继承和使用扩展的好例子是什么?

我之前使用过这两种情况,但由于我远没有经验丰富,我仍然不确定如何处理所有情况.

10个投票,8个收藏,超过100个观点,没有人可以扩展?=(.

.net inheritance entity-framework extending entity-framework-4

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

实体框架代码优先迁移 - 不能删除约束,因为它不存在(命名约定从4.3到5.0)

以前使用EF 4.3并在升级到5.0时我发现索引,FK约束和PK约束都将其命名约定更改为包含dbo(例如PK_Users现在变为PK_dbo.Users)

现在,每当我对模型进行更改并且需要更改包含这些内容的表时,它总是说它不能删除约束,因为它无法找到它.

我只是想要它,以便当它试图删除约束/索引/键时,它首先检查5.0之前的命名是否存在,如果是,则删除它,但仍然使用新的5.0命名约定重新创建它.

命名约定从4.3更改为5.0:

主键/索引

Old: PK_Users                    New: PK_dbo.Users
Run Code Online (Sandbox Code Playgroud)

外键

Old: FK_Users_Roles_Role_Id      New: FK_dbo.Users_dbo.Roles_Role_Id               
Run Code Online (Sandbox Code Playgroud)

注意:我不能简单地让EF重新生成所有表,我在这个数据库中有生产数据.我也不想为每个使用自定义迁移的表手动执行此操作.

编辑:我发现了一个类似的问题如何停止添加dbo的Entity Framework 5迁移.成为关键名称?但是这个家伙只是想忽略5.0惯例并坚持使用4.3,它只处理表重命名.我不希望这样做,因为后续版本的EF可能会导致更多的更改,这些更改会影响此代码并且只是麻烦.

我试着按照发布​​的答案做同样的事情:

public class CodeMigrator : CSharpMigrationCodeGenerator
{
    protected override void Generate(
        DropIndexOperation dropIndexOperation, IndentedTextWriter writer)
    {
        dropIndexOperation.Name = StripDbo(dropIndexOperation.Name);
        base.Generate(dropIndexOperation, writer);
    }

    protected override void Generate(DropForeignKeyOperation dropForeignKeyOperation, IndentedTextWriter writer)
    {
        dropForeignKeyOperation.Name = StripDbo(dropForeignKeyOperation.Name);
        base.Generate(dropForeignKeyOperation, writer);
    }

    protected override void Generate(DropPrimaryKeyOperation dropPrimaryKeyOperation, IndentedTextWriter writer)
    {
        dropPrimaryKeyOperation.Name = StripDbo(dropPrimaryKeyOperation.Name);
        base.Generate(dropPrimaryKeyOperation, writer);
    }

    // TODO: Override other Generate overloads that involve table …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework ef-code-first ef-migrations entity-framework-5

12
推荐指数
1
解决办法
7129
查看次数

带有AJAX的TinyMCE(更新面板)从来没有价值

我想在更新面板中为文本区域使用富文本编辑器.

我发现这篇帖子:http://www.queness.com/post/212/10-jquery-and-non-jquery-javascript-rich-text-editors通过这个问题:需要ASP.Net/MVC富文本编辑器

决定使用TinyMCE,因为我之前在非AJAX情况下使用它,并且它在该列表中说它与AJAX兼容.好吧,我做了很好的' tinyMCE.init({ //settings here }); 测试它,它在更新面板更新后消失了.我从这里的一个问题中找出它应该在page_load函数中,所以它甚至可以在异步回发上运行.好吧,这样做,面板停留.但是,在尝试从我的textarea提交值时,它的文本总是返回为空,因为我的表单验证器总是说"你必须输入描述",即使我在其中输入文本.这是在页面第一次加载以及对页面执行异步回发之后发生的.

好吧,我发现这个http://www.dallasjclark.com/using-tinymce-with-ajax/并且不能从同一个AJAX TinyMCE textarea发布两次.我尝试在tinyMCE.init之后立即将此代码添加到我的页面加载函数中.这样做会破坏我之后在page_load中调用的所有jquery,它仍然存在同样的问题.

我仍然是客户端脚本编写的初学者,所以也许我需要将代码放在与page_load不同的位置?不确定我链接的帖子不知道放置代码的位置.

我的Javascript:

<script type="text/javascript">

var redirectUrl = '<%= redirectUrl %>';

function pageLoad() {

    tinyMCE.init({
        mode: "exact",
        elements: "ctl00_mainContent_tbDescription",
        theme: "advanced",
        plugins: "table,advhr,advimage,iespell,insertdatetime,preview,searchreplace,print,contextmenu,paste,fullscreen",
        theme_advanced_buttons1_add_before: "preview,separator",
        theme_advanced_buttons1: "bold,italic,underline,separator,justifyleft,justifycenter,justifyright, justifyfull,bullist,numlist,undo,redo,link,unlink,separator,styleselect,formatselect",
        theme_advanced_buttons2: "cut,copy,paste,pastetext,pasteword,separator,removeformat,cleanup,charmap,search,replace,separator,iespell,code,fullscreen",
        theme_advanced_buttons2_add_before: "",
        theme_advanced_buttons3: "",
        theme_advanced_toolbar_location: "top",
        theme_advanced_toolbar_align: "left",
        extended_valid_elements: "a[name|href|target|title|onclick],img[class|src|border=0|alt|title|hspace|vspace|width|height|align|onmouseover|onmouseout|name],hr[class|width|size|noshade],font[face|size|color|style],span[class|align|style]",
        paste_auto_cleanup_on_paste: true,
        paste_convert_headers_to_strong: true,
        button_tile_map: true
    });

    tinyMCE.triggerSave(false, true);
    tiny_mce_editor = tinyMCE.get('ctl00_mainContent_tbDescription');
    var newData = tiny_mce_editor.getContent();
    tinyMCE.execCommand('mceRemoveControl', false, 'your_textarea_name'); …
Run Code Online (Sandbox Code Playgroud)

.net javascript updatepanel tinymce asp.net-ajax

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

'String'的值不能转换为Type'T'.获取查询字符串的通用函数?

我有这个功能:

Public Shared Function GetQueryStringValue(Of T As Structure)(ByVal queryStringVariable As String) As T
        Dim queryStringObject As Nullable(Of T) = Nothing
        If queryStringVariable <> Nothing Then
            If HttpContext.Current.Request.QueryString(queryStringVariable) IsNot Nothing Then
                queryStringObject = DirectCast(HttpContext.Current.Request.QueryString(queryStringVariable), T)
            End If
        End If

        Return queryStringObject
End Function
Run Code Online (Sandbox Code Playgroud)

我希望这样称呼:

Dim userId As Integer = SessionUtil.GetSessionValue(Of Integer)("uid")
Run Code Online (Sandbox Code Playgroud)

我试图使它成为通用的,因为最后查询字符串值可能至少是一个整数或一个字符串,但也可能是一个double和其他.但我得到错误:

Value of 'String' cannot be converted to Type 'T'

我用Session变量完成了同样的事情并且它有效.有人知道如何使这项工作?

编辑:下面的乔纳森艾伦有一个更简单的答案使用CObj()或CTypeDynamic().但是下面也可以从Convert string到nullable类型(int,double等等)

Dim conv As TypeConverter = TypeDescriptor.GetConverter(GetType(T))
queryStringObject = DirectCast(conv.ConvertFrom(queryStringVariable), T)
Run Code Online (Sandbox Code Playgroud)

.net vb.net generics type-conversion query-string

11
推荐指数
2
解决办法
4560
查看次数

.CreateObjectSet <T>,.Set <T>和.CreateQuery <T>之间的区别?

我正在为实体框架编写一个通用存储库,并对这些调用之间的区别感到困惑:

ObjectContext.CreateObjectSet<T>
ObjectContext.CreateQuery<T>
DbContext.Set<T>
Run Code Online (Sandbox Code Playgroud)

我想要一个通用的存储库,它既支持从.edmx文件生成的上下文,也支持代码第一个DbContext,所以我有这个:

 public abstract class EntityRepository<TClass>
   where TClass : class, new()
{
    //private readonly TContext _context;
    private readonly ObjectSet<TClass> _objectSet;

    protected EntityRepository(IObjectContextAdapter context)
    {
        _objectSet = context.ObjectContext.CreateObjectSet<TClass>();

    }

    protected EntityRepository(ObjectContext context)
    {
        _objectSet = context.CreateObjectSet<TClass>();
    }

    public ObjectSet<TClass> Query()
    {
        return _objectSet;
    }
}
Run Code Online (Sandbox Code Playgroud)

在我在网上看过的例子中,我看过所有使用过的3个,它们之间的实际差异是什么?一个更好的表现明智吗?我知道你可以使用所有3种方法针对上下文编写LINQ查询.

generics datacontext entity-framework

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