小编Ell*_*eny的帖子

如何在ServiceStack服务实现中使用标准ASP.NET会话对象

我刚刚开始使用ServiceStack,作为测试用例,我希望重新编写使用标准ASP.Net处理程序构建的现有服务.我已经成功地将它全部工作,因为我想要它,但有某些方面利用ASP.Net Session对象.

我已经尝试将IRequiresSessionState添加到服务接口中:

public class SessionTestService : RestServiceBase<SessionTest>, IRequiresSessionState {
    public override object OnPost(SessionTest request) {
        // Here I want to use System.Web.HttpContext.Current.Session
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是我似乎无法使其工作,因为Session对象始终为null.

我做了很多谷歌搜索,并对https://github.com/mythz/ServiceStack/blob/master/tests/ServiceStack.WebHost.IntegrationTests/Services/Secure.cs和类似问题感到困惑,但我找不到任何执行此操作的示例代码(令我感到惊讶).任何人都可以解释为什么以上不起作用,并建议我需要做什么才能使它工作?

注意:最终我可能希望用Redis替换它或者尝试删除任何服务器端会话要求,但我认为我暂时使用ASP.Net实现,以使工作正常并避免重新处理它在这一点上超过必要的.

asp.net servicestack

16
推荐指数
2
解决办法
6166
查看次数

存储过程返回null作为输出参数

我有stored procedure,它在MS SQL管理工作室很棒.

当我尝试在VS行中使用它时返回正常,但输出参数的值为NULL.

SqlCommand cmd = new SqlCommand("proc_name", conn);
cmd.CommandType = CommandType.StoredProcedure;

cmd.Parameters.Add(new SqlParameter("@p_SomeVal", SqlDbType.Int));
cmd.Parameters["@p_SomeVal"].Direction = ParameterDirection.Output;

rdr = cmd.ExecuteReader();
//...process rows...

if (cmd.Parameters["@p_SomeVal"].Value != null)
SomeVal = (int)cmd.Parameters["@p_SomeVal"].Value;
Run Code Online (Sandbox Code Playgroud)

cmd.ExecuteNonQuery(); 有相同的结果.

USE [db_name]
GO

DECLARE @return_value int,
    @p_SomeValue int

EXEC    @return_value = [dbo].[Proc_name]
    @p_InputVal = N'aa',
    @p_SomeValue = @p_SomeValue OUTPUT

SELECT  @p_SomeValue as N'p_SomeValue'

SELECT  'Return Value' = @return_value

GO
Run Code Online (Sandbox Code Playgroud)

c# sql stored-procedures

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

Internet Maps Quirks模式中的Google Maps API v3.19已损坏

2015年2月17日,Google Maps API 3.19版成为默认地图"发布"(请参阅https://code.google.com/p/gmaps-api-issues/wiki/JavascriptMapsAPIv3Changelog).在使用怪癖模式时,该版本似乎在Internet Explorer中引起问题,正如我从受此问题影响的应用程序生成的以下测试页所证明的那样(因此这可能包含的代码多于此处所需的代码):

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Google Maps Test Page</title>
</head>
<body style="margin:0; padding:0">
    <!-- Adding ?v=3.18 onto the end of this URL will 'fix' the problem -->
    <script src='http://maps.googleapis.com/maps/api/js' type='text/javascript'></script>
    <script type='text/javascript'>
    function initialize() {
        top.google.maps.visualRefresh=true;
        var mapOptions = {
            zoom: 13,
            center: new google.maps.LatLng(51.5072, 0.1275),
            mapTypeId: google.maps.MapTypeId.ROADMAP,
            scaleControl: true,
            overviewMapControl: true
        };
        this._map = new google.maps.Map(document.getElementById('myMap'), mapOptions);  
    }

    google.maps.event.addDomListener(window, 'load', initialize);
    </script>

    <div id="myMap" style="width:500px;height:500px;position:relative;"></div>
 </body>
 </html>
Run Code Online (Sandbox Code Playgroud)

Firefox和Chrome都会正确显示可用的地图,而IE会在Google地图代码中引发错误,该错误显示"无法获取显示属性".无效的论点.' 我已经尝试调试代码,但它被混淆了,这使它成为一个痛苦的挑战.

强制版本回到最后一个"冻结"版本(3.18)暂时解决了问题,但这只是一个临时解决方案.

任何人都可以提出一个解决方案,而不是向谷歌报告,并希望他们解决它?


附加说明: …

javascript google-maps

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

数以百万计的小图形文件以及如何克服XP上的慢速文件系统访问

我正在渲染数百万个瓷砖,这些瓷砖将在Google地图上显示为叠加层.这些文件由伦敦大学学院高级空间分析中心的GMapCreator创建.应用程序一次将文件呈现到一个文件夹中,在某些情况下我需要创建大约420万个图块.我使用NTFS文件系统在Windows XP上运行它,磁盘为500GB,并使用默认操作系统选项进行格式化.

我发现随着渲染图块数量的增加,图块的渲染变得越来越慢.我还看到,如果我尝试在Windows资源管理器中查看文件夹或使用命令行,那么整个机器会在恢复到足以再次执行某些操作之前有效锁定几分钟.

我一直在将输入的shapefile分成小块,在不同的机器上运行等等,但这个问题仍然给我带来了相当大的痛苦.我想知道我的磁盘上的簇大小是否会阻碍这个问题,或者我是否应该完全使用另一个文件系统.有没有人有任何想法我怎么能够克服这个问题?

谢谢,

巴里.

更新:

感谢大家的建议.最终的解决方案包括编写一段监视GMapCreator输出文件夹的代码,根据文件名将文件移动到目录层中; 所以名为abcdefg.gif的文件将被移动到\ a\b\c\d\e\f\g.gif中.在GMapCreator的同时运行它可以克服文件系统性能问题.关于生成DOS 8.3文件名的提示也非常有用 - 如下所述,我惊讶于它产生了多大的不同.干杯:-)

filesystems performance google-maps windows-xp

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

英国国家网格Shapefile - 转换为WGS84 Lat/Lon

我有一套ESRI shapefile,据我所知,它是用英国国家网格坐标系编写的.我需要将这些文件转换为WGS84 lat/lons,以便继续转换为KML文件.我这样做有困难如下:

如果我打开MapInfo Professional中的每个原始文件,告诉我我的文件有一个英国国家网格的投影,那么我在文件中看不到任何地理对象; 地图窗口完全为空.

如果我使用MapInfo Professional的Universal Translator将文件转换为WGS84 MapInfo TAB文件,那么,与之前一样,转换后的文件将不会显示任何地理对象,MapInfo窗口为空.

我可以验证这些文件的坐标系吗?我在这里错过了什么吗?我是否应该能够以我期望的方式转换shapefile并使用MapInfo Professional查看它们?另一个工具会为我做得更好吗?

谢谢.

更多信息:

我的shapefile有一些似乎没有正确转换为lat/lon的坐标,我现在想知道坐标是不是英国国家网格.我看到坐标如383702523,399081141,看起来大约是纬度/经度53.488182,-2.247153.你知道我的输入文件是什么投影系统吗?

mapping wgs84 coordinate-systems

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

如何将 EC2 实例分配给子网内的固定 IP 地址?

我正在使用 CloudFormation 来定义子网和 EC2 实例。我想为 EC2 实例分配一个特定的私有 IP 地址,并尝试使用资源定义(如下所示)来这样做。

当我尝试部署我的模板时,NetworkInterface 资源的创建失败并显示消息“地址在子网的保留地址范围内”。我试图解决这个问题,但没有取得进展。如何使用可应用于我的 EC2 实例的私有 IP 地址范围来定义我的子网?

谢谢。

注意:整个模板包含其他资源,因此我尝试将其缩减为重要组件,因此以下内容故意不完整。

"SharedVPC": {
  "Type": "AWS::EC2::VPC",
  "Properties": {
      "CidrBlock": "10.10.0.0/16",
      "EnableDnsHostnames": true,
      "EnableDnsSupport": true,
      "InstanceTenancy": "default"
  }
},

"SharedVPCPrivateSubnet1": {
  "Type": "AWS::EC2::Subnet",
  "Properties": {
      "AvailabilityZone": "eu-west-1a",
      "CidrBlock": "10.10.129.0/24",
      "MapPublicIpOnLaunch": false,
      "VpcId": {
          "Ref": "SharedVPC"
      }
  }
},

"DbServerEC2Instance": {
  "Type": "AWS::EC2::Instance",
  "Properties": {
    "KeyName": "WindowsEC2",
    "InstanceType": "t2.micro",
    "AvailabilityZone": "eu-west-1a",
    "ImageId": {
      "Ref": "DbServerEC2ImageAMI"
    },
    "IamInstanceProfile": {
      "Ref": "EC2InstanceProfile"
    },
    "NetworkInterfaces": [{
      "NetworkInterfaceId": …
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 amazon-web-services aws-cloudformation

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