小编Pat*_*ins的帖子

使用HttpWebResponse编码问题

以下是代码片段:

HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(request.RawUrl);
WebRequest.DefaultWebProxy = null;//Ensure that we will not loop by going again in the proxy
HttpWebResponse response = (HttpWebResponse)webRequest.GetResponse();
string charSet = response.CharacterSet;
Encoding encoding;
if (String.IsNullOrEmpty(charSet))
encoding = Encoding.Default;
else
encoding = Encoding.GetEncoding(charSet);

StreamReader resStream = new StreamReader(response.GetResponseStream(), encoding);
return resStream.ReadToEnd();
Run Code Online (Sandbox Code Playgroud)

问题是如果我测试:http://www.google.fr

所有"é"都表现不佳.我试图将ASCII更改为UTF8,但仍然显示错误.我在浏览器中测试了html文件,浏览器显示了html文本,所以我很确定问题出在我用来下载html文件的方法中.

我应该改变什么?

删除了死的ImageShack链接

更新1:代码和测试文件已更改

c# encoding

26
推荐指数
3
解决办法
5万
查看次数

如何在不使用abort()的情况下断言()?

如果我使用assert()并且断言失败assert()则会调用abort(),突然结束正在运行的程序.我的生产代码中负担不起.有没有办法在运行时断言但能够捕获失败的断言,所以我有机会优雅地处理它们?

c++ assert exception

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

具有Nullable值的SqlParameter在ExecuteNonQuery时给出错误?

我有一个SQL查询,其参数在数据库(Sql Server)中可以为null.更新方法正常工作,直到该用户在字段中放置一个空白,这将为DataTime对象生成一个空值(此对象可以为空).问题是什么时候dbCommand.ExecuteNonQuery();.

以下是我为此字段构建参数的方法:

    IDataParameter dbParam_au_id = new SqlParameter();
    dbParam_au_id.ParameterName = "@birthday";
    dbParam_au_id.Value = birthday;
    dbParam_au_id.DbType = DbType.DateTime;
    dbCommand.Parameters.Add(dbParam_au_id);
Run Code Online (Sandbox Code Playgroud)

我尝试将生日的null值转换为DBNull.Value,如下所示:

    IDataParameter dbParam_au_id = new SqlParameter();
    dbParam_au_id.ParameterName = "@birthday";
    dbParam_au_id.Value = birthday??DBNull.Value;
    dbParam_au_id.DbType = DbType.DateTime;
    dbCommand.Parameters.Add(dbParam_au_id);
Run Code Online (Sandbox Code Playgroud)

但是这段代码不能编译,我得到错误:

错误1运算符'??' 不能应用于'System.DateTime?'类型的操作数 和'System.DBNull'

任何的想法?

.net c# sql-server nullable

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

如何使用Entity Framework和Membership表初始化数据库

我有一个使用Entity Framework 5.0 Code First的MVC4 Web应用程序.

在Global.asax.cs中,我有一个初始化Entity.Database的引导程序,强制初始化数据库并初始化成员资格数据库.代码是这样的:

System.Data.Entity.Database.SetInitializer(new DatabaseContextInitializer());
Database.Initialize(true);
WebSecurity.InitializeDatabaseConnection(DEFAULTCONNECTION, "UserProfile", "UserId", "UserName", autoCreateTables: true);
Run Code Online (Sandbox Code Playgroud)

DatabaseContextInitializer目前非常简单:

public class DatabaseContextInitializer : DropCreateDatabaseIfModelChanges<DatabaseContext>
{
    protected override void Seed(DatabaseContext dbContext)
    {
        base.Seed(dbContext);
        db.Set<Workout>().Add(new Workout {Id = 1, Name = "My First workout user1"})

    }
}
Run Code Online (Sandbox Code Playgroud)

问题是我无法通过以下方式为会员创建用户:

WebSecurity.InitializeDatabaseConnection(DEFAULTCONNECTION, "UserProfile", "UserId", "UserName", autoCreateTables: true);
Run Code Online (Sandbox Code Playgroud)

因为我有一个问题,即没有创建数据库.如何使用Entity Framework 5.0和Asp.Net MVC 4初始化数据库的某些默认用户?

asp.net-mvc entity-framework asp.net-membership asp.net-mvc-4 entity-framework-5

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

ASP.NET自定义用户控件动态添加

我很难将具有自定义用户控件的页面直接修改为ASPX页面,现在需要在需要时动态加载它.用户控件通过ASCX文件具有html和其他控件,并在代码隐藏中具有代码.

我已阅读多个页面,并发现我无法直接实例化用户控件但应使用Page.LoadControl(...).问题不在于编译,但是当页面加载控件时,ASCX内的所有控件都会为空,然后崩溃.

如何在ASCX和代码隐藏中动态使用具有代码的用户控件?

编辑:

我在做什么的例子(PageLoad或PagePreRender或PagePreInit)

      Control c = LoadControl(typeof(MyControl), null);
      myControl= (MyControl)c;
      myControl.ID = "123";
      myControl.Visible = false;
      Controls.Add(myControl);
Run Code Online (Sandbox Code Playgroud)

MyControl确实有例如<div id="whatever" runat="server">......并且在MyControl中它将可见性设置为True或False ...但是当它这样做时,现在它崩溃了,因为"whatever"div是NULL.

asp.net user-controls webforms dynamic

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

如何为您的网站设置API密钥系统?

假设我有一个网站,其中包含一些可以从外部访问的信息.这些信息只需由受尊敬的客户进行更改.示例:Google Analytic或WordPress API密钥.如何创建一个像这样工作的系统(无论编程语言)?

api-design

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

如何在Python中使用ctypes卸载DLL?

我正在使用ctypes在Python中加载DLL.这非常有效.

现在我们希望能够在运行时重新加载该DLL.

直截了当的方法似乎是:1.卸载DLL 2.加载DLL

不幸的是我不确定卸载DLL的正确方法是什么.

_ctypes.FreeLibrary可用,但是私有.

有没有其他方法来卸载DLL?

python dll ctypes

19
推荐指数
3
解决办法
2万
查看次数

如何在asp.net MVC 3中获取当前视图名称?

如何使用Razor引擎在asp.net MVC 3中获取当前URL的当前视图名称?

asp.net razor asp.net-mvc-3

19
推荐指数
2
解决办法
3万
查看次数

C#对象不为null,但(myObject!= null)仍然返回false

我需要在对象和NULL之间进行比较.当对象不是NULL时,我用一些数据填充它.

这是代码:

 if (region != null)
 {
  ....
 }
Run Code Online (Sandbox Code Playgroud)

这是有效的,但是当某些时候循环和循环时,region对象是非null(我可以在调试模式下看到其中的数据).在调试时一步一步,它不会进入IF语句...当我使用以下表达式进行快速监视时:我看到(region == null)返回false,AND(区域!= null )也返回错误... 为什么以及如何?

更新

有人指出对象是==和!=重载:

    public static bool operator ==(Region r1, Region r2)
    {
        if (object.ReferenceEquals(r1, null))
        {
            return false;
        }
        if (object.ReferenceEquals(r2, null))
        {
            return false;
        }

        return (r1.Cmr.CompareTo(r2.Cmr) == 0 && r1.Id == r2.Id);
    }


    public static bool operator !=(Region r1, Region r2)
    {
        if (object.ReferenceEquals(r1, null))
        {
            return false;
        }
        if (object.ReferenceEquals(r2, null))
        {
            return false;
        }
        return (r1.Cmr.CompareTo(r2.Cmr) != 0 || r1.Id != r2.Id); …
Run Code Online (Sandbox Code Playgroud)

c# null compare

18
推荐指数
3
解决办法
6万
查看次数

调用批处理文件后,服​​务在WaitForExit处挂起

我有一个服务有时会调用批处理文件.批处理文件需要5-10秒才能执行:

System.Diagnostics.Process proc = new System.Diagnostics.Process(); // Declare New Process
    proc.StartInfo.FileName = fileName;
    proc.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
    proc.StartInfo.CreateNoWindow = true;
    proc.Start();
    proc.WaitForExit();
Run Code Online (Sandbox Code Playgroud)

当我在控制台中运行相同的代码时,该文件确实存在并且代码可以正常工作.然而,当它在服务内部运行时,它会挂起WaitForExit().我必须从Process中删除批处理文件才能继续.(我确定该文件存在,因为我可以在进程列表中看到它.)

我该如何修复这个挂断?

更新#1:

凯文的代码允许我获得输出.我的一个批处理文件仍然挂起.

"C:\ EnterpriseDB\Postgres\8.3\bin\pg_dump.exe"-i -h localhost -p 5432 -U postgres -F p -a -D -v -f"c:\ backupcasecocher\backupdateevent2008.sql"-t "\"public \".\"dateevent \"""DbTest"

另一个批处理文件是:

"C:\ EnterpriseDB\Postgres\8.3\bin\vacuumdb.exe"-U postgres -d DbTest

我检查了路径,postgresql路径很好.输出目录确实存在,仍然可以在服务外部运行.有任何想法吗?

更新#2:

而不是批处理文件的路径,我写了"C:\ EnterpriseDB\Postgres\8.3\bin\pg_dump.exe"并为其proc.StartInfo.FileName添加了所有参数proc.StartInfo.Arguments.结果没有变化,但我pg_dump.exe在进程窗口中看到了.同样,这只发生在服务中.

更新#3:

我已经与管理员组中的用户一起运行该服务,但无济于事.我恢复null了服务的用户名和密码

更新#4:

我创建了一个简单的服务来在事件日志中编写跟踪并执行包含"dir"的批处理文件.它现在将挂起proc.Start();- 我尝试将帐户从LocalSystem更改为User,我设置了admnistrator用户和密码,仍然没有.

.net c# service windows-services

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