小编Jos*_* M.的帖子

Netflix或Twitter风格的Web服务应该使用REST还是SOAP?

我已经实现了两个REST服务:Twitter和Netflix.两次,我都在努力寻找将这些服务公开为REST而不是SOAP的决策所涉及的用途和逻辑.我希望有人能够让我知道我所缺少的内容并解释为什么将REST用作这些服务的服务实现.

  1. 实现REST服务比实现SOAP服务花费的时间更长.所有现代语言/框架/平台都存在用于读取WSDL并输出代理类和客户端的工具.实现REST服务是手工完成的 - 通过阅读文档来实现这一点.此外,在实现这两个服务时,您必须"猜测"管道中将返回的内容,因为没有真正的架构或参考文档.

  2. 为什么要编写一个返回XML的REST服务呢?唯一的区别是,使用REST,您不知道每个元素/属性所代表的类型 - 您可以自己实现它,并希望有一天字符串不会出现在您认为总是为int的字段中.SOAP使用WSDL定义数据结构,因此这是一个明智的选择.

  3. 我听说过使用SOAP,你有SOAP信封的"开销".在这个时代,我们真的需要担心少数几个字节吗?

  4. 我听说过用REST可以将URL弹出到浏览器中并查看数据.当然,如果您的REST服务使用简单或无需身份验证.例如,Netflix服务使用OAuth,它要求您在提交请求之前对事物进行签名和编码.

  5. 为什么我们需要每个资源的"可读"URL?如果我们使用工具来实现服务,我们真的关心实际的URL吗?

rest soap

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

具有相同名称的配置已存在

我有10个以上项目的解决方案(VS2010 SP1).我在解决方案中定义了以下配置:

  • 调试
  • 调试-QA
  • 发布-UAT
  • 发布生产

这使我可以轻松地为每个部署方案设置特定设置.但是,出于某种原因,我无法按照自己的意愿设置设置.请看这个截图:

Configuration Manager的屏幕截图

请注意突出显示的项目/配置.我无法为这些项目创建"Debug-QA"配置(通过<New>在该单元中选择该特定项目).例如,当我尝试向DataUtility项目添加新的"Debug-QA"配置时,Visual Studio对我大喊:

无法创建此配置,因为已存在同名的解决方案配置.

我知道它确实如此!我正在尝试将配置添加到项目中!我在这里错过了什么?我希望所有项目都有5个配置.尝试匹配(创建)平台时遇到同样的问题(例如,向DataUtility项目添加"Any CPU"平台).

deployment configuration visual-studio-2010 visual-studio

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

Task Runner Explorer无法加载任务

我正在使用VS2015和Gulp.我打开Task Runner Explorer并点击刷新,这显示在日志中:

Failed to run "C:\Projects\Test\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
Error: `libsass` bindings not found in C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\vendor\win32-ia32-11\binding.node. Try reinstalling `node-sass`?
    at Object.sass.getBinaryPath (C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\lib\extensions.js:148:11)
    at Object.<anonymous> (C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\lib\index.js:16:36)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (C:\Projects\Test\node_modules\gulp-sass\index.js:163:21)
    at Module._compile (module.js:456:26)
Run Code Online (Sandbox Code Playgroud)

所以我尝试cmd.exe /c gulp --tasks-simple在PowerShell中运行,在同一目录中,它工作正常 - 它返回一个任务列表.

我也能很好地运行与SASS相关的任务,所以我不确定为什么在通过VS运行而不是直接在命令行上运行SASS时会抱怨它.

visual-studio gulp gulp-sass vs-2015-preview task-runner-explorer

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

VS Code中的小红箭是什么?

请参见此处,在第15行和第16行之间.是否只是表示空白行?如果是这样,为什么?

Visual Studio代码中的红色箭头.

visual-studio-code

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

不显眼的客户端验证规则中的验证类型名称必须是唯一的

不显眼的客户端验证规则中的验证类型名称必须是唯一的.以下验证类型不止一次出现:必需

这是指EmailAddress属性,这里:

public class LoginModel
{
    [Required]
    [DataType(DataType.EmailAddress)]
    [Display(Name = "Email")]
    [AdditionalMetadata("Style", "Wide")]
    public string EmailAddress { get; set; }

    [Required]
    [DataType(DataType.Password)]
    [Display(Name = "Password")]
    [AdditionalMetadata("Style", "Wide")]
    public string Password { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我这里没有两次使用相同类型的验证规则.这在本地工作正常,但在部署到服务器时则不行.这是怎么回事?

我确实添加了对DataAnnotationExtensions(http://dataannotationsextensions.org)的引用,是否会导致问题?

编辑:删除引用没有解决问题.似乎有些东西可能搞砸了IIS配置?

iis-7.5 unobtrusive-validation asp.net-mvc-3

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

如何在ASP.NET中获取原始请求主体?

在这种情况HttpApplication.BeginRequest下,我如何阅读整个原始请求体?当我尝试读取它时InputStream长度为0,这让我相信它可能已经被ASP.NET读过了.

我试过像这样读取InputStream:

using (StreamReader reader = new StreamReader(context.Request.InputStream))
{
    string text = reader.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)

但我得到的只是一个空字符串.我已经将位置重置为0,但当然一旦读取了它,它就会消失,所以这样做不起作用.最后,检查流的长度返回0.

编辑:这是针对POST请求的.

asp.net http

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

可以将值或参数传递给用户控件吗?

我有一段时间没有使用过这些.我只是想知道是否可以从aspx页面向用户控件传递值或参数.假设您注册了一个控件,然后使用类似的东西来使用它

<uc1:SampleUserControl id="SampleUserControl1" runat="server"></uc1:SampleUserControl>
Run Code Online (Sandbox Code Playgroud)

样式语法.你能在那里传递参数吗?

asp.net user-controls

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

在修订版之间创建"补丁"?

似乎SVN的"补丁"功能并不完全是我想要的.我真正想要的是在修订版之间创建文件差异.因此,我选择rev1和rev 2,最后得到一个文件夹,其中包含在这些修订版本之间更改或添加的所有文件.

这可以用Tortoise SVN或普通的svn完成吗?

svn diff tortoisesvn patch

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

IE9中的IE7/8模式与实际运行的IE7/8相比有多好

我正在尝试确认这是出于工作目的,因此我们不需要在IE7和IE8中测试单独的VM.我一直只是使用IE9(F12)中的开发者工具,并改变了浏览器模式和文档模式来进行IE7和IE8测试.

这与"真正的"IE7和IE8中的实际测试相比如何?有没有人做过比较或看过写详细说明?

我假设IE7和IE8渲染引擎只是包含在IE9中,它只是使用那些引擎.还有什么我应该知道的吗?

testing internet-explorer cross-browser

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

Nginx/Passenger/Rails,在哪里设置RAILS_ENV?

我已将我的网站部署到其测试位置,但我不确定我在哪里设置RAILS_ENV该服务器应该是什么.我应该在哪里看?

ruby-on-rails passenger nginx

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