小编Cos*_*lis的帖子

Web API Controller将MemoryStream转换为StreamContent

我有一大堆存储在安全服务器上的图像,其中一些需要在面向世界的门户上显示.门户网站的服务器位于DMZ内部,允许请求但阻止直接请求进入安全域.图像使用SOLR编目,可以通过内部(apache?)服务器下载http://intenalname/folderA/folderAB/file.jpg

在我的内部我PhotoController可以创建一个实例WebClient,给它url并得到一个MemoryStream.如果我尝试使用这个内存流来填充response.content,我会得到一个空响应(每个fiddler).如果我使用内存流写入本地文件,然后读取文件(使用FileStream和FileInfo)它"按预期"工作.

我应该能够从一个MemoryStreamStreamContent没有经过文件系统(不应该)?但怎么样?默认构造函数StreamContent(stream)接受内存流实例而没有编译器错误......但它只是'不起作用'.

HttpResponseMessage response = Request.CreateResponse();

using (WebClient webClient = new WebClient())
{
    string url = string.Format(PHOTO_GET, filePath);
    using (MemoryStream memoryStream = new MemoryStream(webClient.DownloadData(url)))
    {
        // If these lines are unremarked the stream moves 'through' the file system and works (?!)
        //memoryStream.Position = 0;
        //string tempName = @"c:\test\" + Guid.NewGuid().ToString() + ".jpg";
        //var fs = new FileStream(tempName, FileMode.OpenOrCreate);
        //stream.CopyTo(fs);
        //fs.Close();
        //FileInfo fi = new FileInfo(tempName);

        response.Headers.AcceptRanges.Add("bytes"); …
Run Code Online (Sandbox Code Playgroud)

c# asp.net stream asp.net-web-api2

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

为什么在angularJS中将app变量设置为"不良做法"?

我查看了一些angularJS教程和样式指南,并找到了这样的评论(来自Todd Motto)

Bad:
var app = angular.module('app', []);
app.controller();
app.factory();

Good:
angular
  .module('app', [])
  .controller()
  .factory();
Run Code Online (Sandbox Code Playgroud)

我首先通过示例学习了"坏"技术,并且从那以后看到一些参考(除了这一个)之外说"坏"技术是......好坏.

到目前为止,在我的搜索中没有人说为什么它不好?

编辑: 为什么这个问题有所不同? 虽然这与提出的重复问题之间的差异很微妙,但有两个重要的区别:

  1. "什么是最佳做法?" 与"为什么不好?"不一样......虽然对另一个问题的接受答案详细阐述了"为什么",但是具有相同答案的两个问题不足以被称为重复.

  2. 使用我作为此问题标题的确切文本进行的有力搜索没有透露建议的副本.也许SE应考虑允许将"可选标题"添加到问题中以增强搜索性......但该功能不到位且其他人提出与我相同的问题仍然无法找到另一个问题.

angularjs

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

如何在PropertyGrid中查看对象属性?

目前,我有一个类型为A的对象,正由PropertyGrid查看.但是,它的一个属性是B类.B类属性是不可扩展的.我怎样才能改变这一点:

a)我可以展开自定义对象属性b)这些更改绑定到该属性

这是我到目前为止的代码:

using System;
using System.Windows.Forms;
using System.ComponentModel;

namespace PropGridTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            A a = new A
            {
                Foo = "WOO HOO!",
                Bar = 10,
                BooFar = new B
                {
                    FooBar = "HOO WOO!",
                    BarFoo = 100
                }
            };

            propertyGrid1.SelectedObject = a;
        }
    }
    public class A
    {
        public string Foo { get; set; }
        public int Bar { get; set; …
Run Code Online (Sandbox Code Playgroud)

c# propertygrid expand view

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

Visual Studio Task Runner"SyntaxError:在严格模式下使用const."

使用Win10 Pro/VS2015和'网站'项目(不是asp.net,基本网站)

当尝试保存/重新加载gulpfile.js时,我收到错误消息(来自Task Runner Explorer /输出)

SyntaxError:在严格模式下使用const.

在目前的情况下,它正在窒息'gulp-changed'

我查看了可用的答案和评论:


在我的情况下,环境路径,$(PATH)已经包含节点的全局安装,但我需要将它移到$(DevEnvDir)路径之前,以便它将获得优先级. 在我的情况下,环境路径,$(PATH)已经包含节点的全局安装,但我需要将它移到$(DevEnvDir)路径之前,以便它将获得优先级.

(在提供正确答案后添加,谢谢@baao)

javascript node.js gulp

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

Bootstrap需要不存在的popper版本

我的package.json包含:

 "dependencies": {
    "popper": "^1.0.1",
    "bootstrap": "^4.1.0",
Run Code Online (Sandbox Code Playgroud)

安装警告是:

bootstrap@4.1.0需要popper.js@^1.14.0的对等体

但是popper.js"最新"版本是1.0.1

WTF?!?有两种不同的'风味'波普尔?

npm-install bootstrap-4 popper.js

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

Oracle 10g中程序包大小对性能的影响

使用Oracle 10g.这个项目最初的Oracle设计师已经转移,我们这些人仍然是合理的Oracle开发人员,但我们需要一些调整和规划帮助.

我们在'like'包中有分区程序,其中一些(许多)已经增长到包括许多(50个ish)不同复杂程度的程序.

此时,这些较大的软件包中的几个小程序(从Contract中选择Item,其中Item ='xyz')需要比这些软件包(来自TOAD,SQL Developer或.NET Oracle Provider)内部执行的时间长得多'预期'如果proc是自己编译的,还是编译成一个较小的包.(表格已编入索引)

即使在调用相对简单的个别程序时,是否存在使用此类大型软件包的性能成本,或者是否存在我们应该寻找的某些"其他"因素?

(注意:计划升级到Oracle 11但不是'迫在眉睫')

sql oracle plsql package oracle10g

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

元素的jquery选择器MISSING子元素

我需要帮助形成一个jquery选择器来返回缺少特定子元素的元素.

给出以下HTML片段:

    <div id="rack1" class="rack">
    <span id="rackunit1" class="rackspace">
        <span id="component1">BoxA</span>
        <span id="label1">Space A</span>
    </span>
    <span id="rackunit2" class="rackspace">
        <span id="label2">Space B</span>
    </span>
    <span id="rackunit3" class="rackspace">
        <span id="component2">BoxA</span>
        <span id="label3">Space C</span>
    </span>
</div>
<div id="rack2" class="rack">
    <span id="rackunit4" class="rackspace">
        <span id="component3">BoxC</span>
        <span id="label4">Space D</span>
    </span>
    <span id="rackunit5" class="rackspace">
        <span id="label5">Space E</span>
    </span>
    <span id="rackunit6" class="rackspace">
        <span id="component4">BoxD</span>
        <span id="label6">Space F</span>
    </span>
</div>
Run Code Online (Sandbox Code Playgroud)

找到机架单元跨度,没有组件跨度.到目前为止,我有:$(".rack .rackspace")来获取所有机架单元跨度,不确定如何排除那些具有组件跨度的那些或仅选择那些没有单独的那些...

javascript jquery

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

401 SSRS URL访问上的未经授权的错误...但是在Fiddler中有效吗?

我正在尝试使用C#中的URL访问从SSRS报告生成pdf。(在WebApi控制器后面的业务层中)我创建HttpClient的实例,分配正确的凭据并形成请求URL,例如:

http://sqlserver1/ReportServer/Pages/ReportViewer.aspx?/ Clients / Acme / AcmeActivitySummary&rs:Command = Render&rs:format = pdf&Region = west&CutOffDate = 10/25/2015

如果我将URL放在浏览器中,它将下载所需的PDF文件。当我从HttpClient实例执行此URL以返回流时,出现401未经授权错误。

如果我打开Fiddler看看为什么...它按预期工作。

我如何在不使用Fiddler的情况下完成这项工作?为什么现在不起作用?

.net c# reporting-services http-status-code-401

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

间歇性401-来自SSRS的未经授权的回复

(使用C#,Web API,带有报表服务器的SQL Server2012,身份验证为NTLM)

尝试从SSRS下载报告(作为Excel文档)时出现间歇性错误。我建立正确的URL来呈现报告,如下所示:

http://sqlServer/ReportServer/Pages/ReportViewer.aspx?/ TheReportName&rs:Command = Render&rs:format = excel&rc:Parameters = false&Region = WEST&CutOffDate = 10/25/2015

WebClient webClient = new WebClient();
webClient.Credentials = new NetworkCredential("myDom\\myReportReader", "P@55W0rd");
     //string credentials = Convert.ToBase64String(
     //    Encoding.ASCII.GetBytes("myDom\\myReportReader" + ":" + P@55W0rd"));
     //webClient.Headers[HttpRequestHeader.Authorization] = string.Format("Basic {0}", credentials);

//401 Unauthorized thrown here:
return new MemoryStream(webClient.DownloadData(reportUrl));
Run Code Online (Sandbox Code Playgroud)

这里的目标是面向公众的IIS上的Web API控制器从受内部/防火墙保护的SSRS下载文件流,然后将流中继到浏览器。有时候,这行之有效...当它不行时,它在最后一行返回401错误...上面标注的行表示试图解决不起作用的问题。

c# sql-server asp.net windows-security reporting-services

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

安装后未安装VS 2017 NGROK报告

走过Twilio教程,建议使用NGROK和VS2017.轻松找到扩展并安装(必须关闭VS2017并重新打开),当我重新加载项目时,确定NGROK菜单选项显然是"THERE"...但是当我选择菜单选项时(工具 - >启动ngrok隧道)我得到了深不可测的消息: 在此输入图像描述

好吧,也许它没有"一直"安装,所以我选择YES并很快收到一个空引用异常:

在此输入图像描述

安装这个的说明很简单......但我似乎错过了一些东西.

ngrok visual-studio-2017

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

t-SQL:“ Go”附近的语法不正确

注意:我已经在SO和其他论坛上回顾了几个类似的问题,但没有建议被证明有用。

以下t-SQL脚本可以正常工作:

USE [MASTER]
GO
BEGIN
IF NOT EXISTS 
    (SELECT name  
     FROM master.sys.server_principals
     WHERE name = 'myTestUser')
BEGIN
    PRINT 'CREATING LOGIN: [myTestUser]'
    CREATE LOGIN [myTestUser] WITH PASSWORD = N'P@55w0rd'
END ELSE BEGIN
    PRINT 'LOGIN [myTestUser] already exists on this server.'
        END
END
GO
BEGIN
IF NOT EXISTS 
        (
            SELECT 1 
            FROM master.dbo.sysdatabases 
            WHERE name ='myTestDb' 
        )
        BEGIN
            PRINT 'CREATING DATABASE [myTestDb]'
            --INSERT CREATE DB SCRIPT --
        END ELSE BEGIN      
            PRINT 'DATABASE [myTestDb] already exists on this server'
        END;
END
GO …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

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