小编Ror*_*ory的帖子

有没有办法让XmlSerializer以定义的顺序输出xml?

目前我正在使用XmlSerializer来序列化和反序列化一个对象.xml是以未定义的顺序生成的,这是可以理解的,但在比较对象的版本时会令人讨厌,因为每次属性的顺序都不同.因此,例如我不能使用普通的差异工具来查看任何差异.

有没有一种简单的方法可以每次以相同的顺序生成我的xml,而无需自己编写ReadXml和WriteXml方法?我在类上有很多属性,并且不时地添加新的属性,所以宁愿不必编写然后维护该代码.

(C#.net 2.0)

.net c# xml xml-serialization

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

iis:集成Windows身份验证仍会弹出帐户信息登录

我在IIS 6上的Windows 2003服务器上运行了一个网站,为每个人都在使用域帐户的局域网提供服务.在其他机器上工作正常,没有人必须登录到网站,动态脚本从HTTP请求中获取帐户名称.

仅当从服务器本身浏览(例如通过远程桌面)时,Internet Explorer在导航到此站点时仍会弹出域登录对话框.(通常的URL和http:// localhost /).这在我们最近迁移网站的Windows 2000服务器上没有问题.

iis windows-server-2003

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

SqlCommand.Parameters.AddWithValue问题:过程或函数X期望参数@Y,未提供

我对下面的代码有疑问.我将一个parameter(List<SqlParameter>)传递给执行以下代码的方法.

执行时,SQL Server会抛出一条错误,指出proc需要一个未提供的参数.我知道这个错误并理解它,并且当单步执行代码时,我可以看到该cmdExecuteReader对象具有正确名称和值的参数集合.可能是什么问题呢?

     public SqlDataReader ExecuteReader(string storedProcedure, List<SqlParameter> parameters = null)
        {
                    SqlCommand cmdExecuteReader = new SqlCommand()
                    {
                        CommandType = System.Data.CommandType.Text,
                        Connection = conn,
                        CommandText = storedProcedure
                    };

                    if (parameters != null)
                    {
                        foreach (SqlParameter param in parameters)
                        {
                            cmdExecuteReader.Parameters.AddWithValue(param.ParameterName, param.Value);
                        }
                    }

                    if (conn.State == System.Data.ConnectionState.Closed)
                        conn.Open();
                    return cmdExecuteReader.ExecuteReader();
       }
Run Code Online (Sandbox Code Playgroud)

c# parameters sqlcommand

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

.net在Web服务调用中使用客户端证书的示例?

我想使用客户端证书来验证我的Web服务的管理调用者的身份.然后,我只能向我想要调用我的Web服务的人颁发证书,并确保没有其他人可以调用它.这是一个非常受控制的场景,只有一两个人将获得客户端证书,因此分发不是一个难题.

本文提供了如何使用客户端证书调用Web服务的一个很好的示例.

但是,如何从我的Web服务中检查客户端证书的详细信息?这篇旧文章讨论了配置IIS来实现它,但我想在我的应用程序中以编程方式进行.我认为?

谢谢你的任何建议!

c# ssl web-services certificate asmx

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

当我从'int'类型的sqlite列中选择时,我可以转换为.net int但是当我从'integer'列中选择时我不能

我正在使用System.Data.SQLite,从一个sqlite数据库表中选择一个列的类型为'integer',当我做这样的事情时:

int x = (int)reader["myColumn"];
Run Code Online (Sandbox Code Playgroud)

它失败.问题不在于该值为空; 该列不可为空.如果我将列的数据类型更改为"int",那么它可以正常工作.列中的值为"2","3","4"等; 没什么大不了的.

任何人都知道这是否是预期的行为?

c# system.data.sqlite

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

如何使用c#中的字符分隔符将字符串拆分为两部分?

使用单字符分隔符将字符串拆分为两个部分的最佳方法是什么?

字符串应该在分隔符的第一个实例上拆分.该方法应考虑性能.它不应该假设分隔符存在于字符串中,字符串具有任何字符等; 应该是通用代码,您可以随时插入任何需要的代码.

(每当我需要它时,我总是花几分钟时间重写这种东西,所以我想我会提出一个问题)

.net c# string split

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

在SQL Azure中通过顶层表生成磁盘使用情况的查询?

我喜欢使用SQL Management Studio报告"顶级表的磁盘使用情况"来查看占用数据库空间的内容.我可以在SQL Azure中使用什么等效查询来查看

  • 每个表的行数
  • 每个表的磁盘使用量(最好是分解数据和索引)

在SQL事件探查器中,我可以看到"顶级表的磁盘使用情况"报告通常运行此命令:

begin try 

    SELECT TOP 1000
        (row_number() over(order by (a1.reserved + ISNULL(a4.reserved,0)) desc))%2 as l1,
        a3.name AS [schemaname],
        a2.name AS [tablename],
        a1.rows as row_count,
        (a1.reserved + ISNULL(a4.reserved,0))* 8 AS reserved,
        a1.data * 8 AS data,
        (CASE WHEN (a1.used + ISNULL(a4.used,0)) > a1.data THEN (a1.used + ISNULL(a4.used,0)) - a1.data ELSE 0 END) * 8 AS index_size,
        (CASE WHEN (a1.reserved + ISNULL(a4.reserved,0)) > a1.used THEN (a1.reserved + ISNULL(a4.reserved,0)) - a1.used ELSE 0 END) * 8 AS …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server azure-sql-database

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

EF6 实体数据模型设计器不适用于目标框架 .net 5.0

我有一个现有的基于 .NET Framework 的解决方案,我正在将其迁移到 .net 5.0。我现在不会迁移数据访问:我们将继续使用 EF6 模型优先。将项目转换为 .net 5.0 后,我尝试打开 .edmx 文件只是收到一条消息:

实体数据模型设计器无法显示您请求的文件。实体框架在当前为项目指定的目标框架中不可用。您可以更改项目的目标框架或在 XML 编辑器中编辑模型。

目标框架是net5.0.

这应该有效吗?

entity-framework entity-framework-6 .net-core .net-5

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

如何重新启动 Hangfire 服务器,或者停止它并启动一个新服务器,以更改它正在处理的队列?

在我的 asp.net 5 应用程序中,我使用 Hangfire 仅处理某些队列,基于服务器应照顾的租户。因此,在应用程序启动时,我会查找哪些队列并相应地启动 Hangfire 服务器。

    public void ConfigureServices(IServiceCollection services)
    {
        // ... do stuff

        services.AddHangfire(config => config
                                .SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
                                .UseSimpleAssemblyNameTypeSerializer()
                                .UseSqlServerStorage(hangfireConnectionString, new SqlServerStorageOptions
                                {
                                    QueuePollInterval = new TimeSpan(0, 0, 0, 0, 500)
                                })
        );

        string[] queueNames = GetQueueNamesForThisServerToProcess();

        services.AddHangfireServer(options =>
        {
            options.Queues = queueNames;
        });

        // ... do more stuff
    }
Run Code Online (Sandbox Code Playgroud)

稍后我想更改该服务器正在处理的队列。我我需要停止这个hangfire服务器并启动另一个...但是a)我如何获得对这个服务器的引用,b)鉴于建议的启动方法,我应该如何正确启动一个新的服务器aspnet core 中的 Hangfire 服务器正在使用services.AddHangfireServer()

hangfire asp.net-core asp.net-core-5.0

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

当对象acl是公共的时,如何将S3存储桶策略设置为(大部分)私有?

我无法弄清楚如何设置我的存储桶策略以实现我想要的.任何帮助将非常感激!我希望的规则是:

  • 我帐户中的用户可以通过用户策略进行访问,因此不需要专门授予他们的访问权限
  • 匿名用户(或我的AWS账户以外的任何人)应该没有访问权限,除了:
  • 一个文件夹/ temp_public应该有一个公共GetObject(即如果你知道你可以获取文件的URL)
  • 这些策略应覆盖存储桶中文件的对象ACL,因为对象ACL有时设置为公共读取.

创建存储桶策略的原因是存储桶中的许多对象具有公共读取ACL(在文件上载时无意中设置,但也可能在将来发生,因此我希望使用存储桶ACL覆盖对象ACL).

忽略temp_public文件夹,我希望我可以这样做:

{
    "Version": "2008-10-17",
    "Id": "Policy123456789",
    "Statement": [
        {
            "Sid": "Stmt1",
            "Effect": "Deny",
            "NotPrincipal": {
                "AWS": "arn:aws:iam::123456789012:root"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::my-bucket-name/*"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

(123456789012我的AWS账号在哪里),但我对所有使用该存储桶策略的用户都拒绝访问.我想NotPrincipal在这种情况下不起作用?

谢谢你的任何建议!

罗里

更新:跨张贴在这里的AWS论坛,并回答了!

amazon-s3 amazon-web-services

6
推荐指数
1
解决办法
4483
查看次数