首页
学习
活动
专区
圈层
工具
发布

WCF与IIS集成Windows身份验证的矛盾

分享一个关于WCF的小技巧,由于项目中 很多地方用了Jquery+WCF来实现Ajax异步获取数据,在开发环境下: 直接在vs.net里,右击svc文件在浏览器里浏览时(没有采用vs.net自带的aspx...服务器,而是在项目属性里设置为直接使用IIS),提示以下错误: IIS 指定了身份验证方案“IntegratedWindowsAuthentication, Anonymous”,但绑定仅支持一种身份验证的规范...有效的身份验证方案为摘要、协商、NTLM、基本或匿名。请更改 IIS 设置,以便仅使用单一的身份验证方案。...错误提示说得很明白:IIS要么采用集成验证,要么仅使用匿名验证,于是把IIS设置里的集成验证勾选去掉了,IIS重启后,这回运行正常了,但是VS.Net却无法断点调试了(启用调试必须采用集成验证),难道这就是传说中的...不甘心之下,在iis的website站点中,对svc所在的目录右击看了一下,呵呵,找到解决办法了,IIS可以允许单独对每个目录(或虚拟目录)设置目录安全性,于是把svc所在的目录(整个项目中的所有wcf

1.2K50

使用WCF进行跨平台开发之二(IIS托管WCF服务并使用php平台调用)1.系统必备2.在IIS中托管WCF服务3.使用PHP调用托管在IIS中的WCF服务

上一篇中,使用控制台托管了WCF服务,但是如果想从PHP和java平台调用,必须将其托管到IIS中(并不是必须的,还是有其他的方式的 比如windows azure) 1.系统必备      首先,必须打开...2.在IIS中托管WCF服务      在IIS默认网站中添加应用程序emp,并在高级设置中,设置应用程序池为“ASP.NET v4.0”,并设置默认网站右键--编辑版定,在http类型中编辑IP地址和主机名...在新建的虚拟目录对应的实际目录中,添加web.config文件,配置wcf服务和终结点,并打开元数据公开,然而,因为这里不是使用常用的svc文件托管的服务,所以需要serviceActivations节点配置服务...3.使用PHP调用托管在IIS中的WCF服务 在PHP服务器中打开浏览器,并浏览http://192.168.11.1/emp/EmployeeManagement.svc测试服务是否托管正常。 ?...出现以上页面,证明在IIS中托管正常,现在,可以使用php开发程序调用此服务啦。

2.7K70
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    IIS Windows 集成身份验证弹出输入用户名密码的解决办法

    如果您正在设置您的IIS身份验证方式为“ Windows 集成身份验证 ”,并且您在使用IE访问您的站点时发现IE仍然要求您输入您的用户名和密码,而且您又不知道问题出在哪里,那么下面文章将对您有所帮助。...根据我们的理解“ Windows 集成身份验证 ”意味着IE会自动使用当前系统登录的账户证明访问IE站点,这里面的原理在微软官方的解释是通过Kerberos(如果您对此不是很了解可以参照的另一篇文章:http...但是理论和我们亲身验证的结果并不一样,您遇到的情况也许和我下面遇到的情形类似: 首先我建好IIS站点,并设置身份验证方式为“Windows 集成身份验证”。...4.png 但是我的本意并不是这样的(我是使用域账户登陆的,并且我在IIS上没有设置对该账户的任何禁止权限),除非我没有使用有权限的域账户进行登录,我希望IE不要提示我再一次输入我的用户名和密码。...5.png 然后重启IE,重新访问该网址 6.png 我直接就进来了,但是这一切都是建立在我的客户端计算机已经加入域,并且我使用域账户登录,且我的计算机处在可以和域控制器联系的内网环境中。

    2.9K70

    WCF技术剖析之四:基于IIS的WCF服务寄宿(Hosting)实现揭秘

    通过《再谈IIS与ASP.NET管道》的介绍,相信读者已经对IIS和ASP.NET的请求处理管道有了一个大致的了解,在此基础上去理解基于IIS服务寄宿的实现机制就显得相对容易了。...我们可以通过一种简单的方式来证明这一点。 假设我们有一个WCF服务需要通过IIS进行寄宿,并把WCF服务相应的.svc文件定义在一个对应于某个IIS虚拟目录的ASP.NET Website中。...二、ASP.NET并行(Side by Side)模式 对于基于IIS服务寄宿,System.ServiceModel.Activation.HttpModule将基于.svc的请求劫持并分发给WCF的服务模型...这主要是因为WCF和.asmx Web Service有本质的区别:Web Service总是采用IIS寄宿,并使用HTTP作为传输,而WCF则具有不同的寄宿方式,对于传输协议的选择也没有限制。...比如,在WCF Service的操作中,需要获取ASP.NET应用的SessionState,或者是需要通过基于.svc文件的ACL对WCF Service进行授权等。

    1.5K100

    IIS Windows 集成身份验证弹出输入用户名密码的解决办法

    如果您正在设置您的IIS身份验证方式为“ Windows 集成身份验证 ”,并且您在使用IE访问您的站点时发现IE仍然要求您输入您的用户名和密码,而且您又不知道问题出在哪里,那么下面文章将对您有所帮助。...根据我们的理解“ Windows 集成身份验证 ”意味着IE会自动使用当前系统登录的账户证明访问IE站点,这里面的原理在微软官方的解释是通过Kerberos(如果您对此不是很了解可以参照的另一篇文章:http...但是理论和我们亲身验证的结果并不一样,您遇到的情况也许和我下面遇到的情形类似: 首先我建好IIS站点,并设置身份验证方式为“Windows 集成身份验证”。...4.png 但是我的本意并不是这样的(我是使用域账户登陆的,并且我在IIS上没有设置对该账户的任何禁止权限),除非我没有使用有权限的域账户进行登录,我希望IE不要提示我再一次输入我的用户名和密码。...5.png 然后重启IE,重新访问该网址 6.png 我直接就进来了,但是这一切都是建立在我的客户端计算机已经加入域,并且我使用域账户登录,且我的计算机处在可以和域控制器联系的内网环境中。

    3.3K130

    将使用netTcp绑定的WCF服务寄宿到IIS7上全记录

    摘要 在项目开发中,我们可能会适时的选择http或者tcp绑定的wcf服务,可以使用控制台来托管服务,也可以使用IIS来承载服务,由于IIS本身对于请求和异常的处理能力,使得我们可以省去很多开发精力而成为托管服务的首选...,之前我做的WCF服务时托管在控制台的,今天摸索了一下采用tcp绑定的wcf托管到IIS7的过程,分享一下,希望能帮助到想移植服务到IIS的朋友。...实例 依然是以一个服务作为例子展开,我们新建一个WCF Application,默认有一个简单的服务Service1.svc,   代码 [ServiceContract]  public interface...在创建虚拟目录时也许VS会提示需要安装IIS6的一些组件,那么我们按照提示打开”windows的更新安装“ 要将WCF的tcp绑定方式的服务host在IIS上,首先你需要启用这个功能 ?...在vs2010中再浏览一下服务http://localhost/WCFService/Service1.svc,发现已经OK了 ? 于是,我们可以正常引用并使用这个服务了 ?

    1.1K20

    WCF 4.5:配置文件更小,对ASP.NET的支持更好

    对于那些直接使用WSDL的人,也有好消息。WCF 4.5现在会在单独的请求中返回完整的WSDL。而之前,它只会包括部分WSDL,还需要获取一系列匹配的XSD文件。想要使用这种方法,你需要使用?...尽管把WCF部署在Windows服务中是完全可以接受的,但是大多数开发者会在工作中继续使用IIS。为什么不呢,IIS提供了对很多特性的内建支持,像身份验证、状态管理以及过程回收等。...但是在这个模型中还有一些微软正在努力解决的限制。例如,当前开发者需要在两个地方配置哪种身份验证方式能够得到支持。如果他们意外忘记了sync,那么服务就会停止运行。...如果IIS正好启用了多种身份验证类型,那么客户端只会承认第一个。客户端开发者可以对其重写以使用另一种类型,但前提是他们可以找到另一种方式。请注意这完全是客户端工具的问题,WSDL会列出所有选项。...Ori认为, 当你把WCF服务部署在IIS中时,即便你不使用ASP.NET兼容模式,也会占用一些ASP.NET的管道,这在MSDN的文章《WCF 服务和ASP.NET》中有记录(你需要查找关于PostAuthenticateRequest

    1.1K50

    iis中ASP运行环境配置图解 IIS的安装和基本设置

    现在服务器上的asp运行环境基本上都是用win2003或win2008,当然也有winxp但iis版本是5.1的,大家可以根据需要选择如果为了方便与简单的测试可以用简易的asp运行环境,可以到/百度搜索下载...这里以win2003 iis6安装配置为主 如果您的电脑没有安装iis那么需要安装,iis6.0的安装文件可以到//百度搜索下载。 好,我们开始我们asp征程的第一步。任何动态语言都需要服务器的支持。...这里牵涉到两个概念,一是服务器,还有一个就是与之对应的客户端。从字面上我们就能看出,服务器当然是提供服务的机器,也就是提供asp动态网站服务的机器;而客户端,就是客户用来浏览我们asp动态网站的机器。...(第一次阐述概念,我认为只要易懂而又不误导大家就好了,没必要大费口水)asp的运行环境很简单,只要装上iis(internet information service,因特网信息服务,是系统的一种组件,...,就会弹出windows组件对话框,选中internet 信息服务(iis),单击图四中的详细信息偷看一下:  6、然后就是微软的传统傻瓜式安装了),就是一直点下一步,然后就安装完成了,恭喜你~!

    5.8K00

    WCF技术剖析之三:如何进行基于非HTTP的IIS服务寄宿

    图1 IIS 7总体架构 由于IIS 7提供了基于非HTTP网络协议的监听支持,那么就意味着当我们当我们通过IIS进行WCF服务寄宿(Hosting)的时候,可以采用非HTTP的通信方式。...在本篇文章中,我们将通过一个简单实例介绍进行非HTTP的IIS服务寄宿,Source Code下载WasHostingDemo.zip。...在本实例中,我们通过IIS 7实现基于TCP的服务寄宿,图2表示实例应用在VS2008种的解决方案结构。...图2 基于TCP的IIS服务寄宿实例在VS2008中的解决方案结构 步骤一:定义服务契约和服务 本实例仍然采用我们熟悉的计算服务的例子,在Contracts项目下,定义了接口ICalculator代表计算服务的服务契约...HTTP协议的IIS寄宿服务的客户端来说,和普通的WCF服务调用完全一样,下面是服务调用代码和相关的配置。

    82260

    【翻译】WCF4.5:更少的配置和ASP.NET更好的支持

    singleWsdl可以使用这个改进 把WCF服务寄宿到系统服务内是完全可行的。但大多数开发人员继续在IIS下完成大量的工作。为什么呢?...因为IIS提供了很多内置的支持功能,比如身份验证,状态管理和进程回收等。但在IIS下开发WCF服务仍然有一些限制,微软也正在解决这些问题。...WCF4.5通过允许服务按IIS的方式来进行身份认证(设置身份认证的方式为“继承自宿主InheritedFromHost”)除掉了此类型的BUG 不幸的的是这只是一个局部修复,如果IIS激活了多个身份验证类型...当然客户端开发人员会找到另一种方法解决这个问题:他们可以使用另一种类型重写这个身份验证类型。...另一个bug是关于WCF传输流数据的,Ido Flatow: 当你把WCF服务寄宿在IIS上时,即使你没有使用asp.net兼容模式,你也一样会得到asp.net处理管线的一部分。

    69720

    WCF技术剖析之二十: 服务在WCF体系中是如何被描述的?

    任何一个程序都需要运行于一个确定的进程中,进程是一个容器,其中包含程序实例运行所需的资源。同理,一个WCF服务的监听与执行同样需要通过一个进程来承载。...另一种则是通过操作系统现有的进程激活方式为WCF服务提过宿主,Windows下的进程激活手段包括IIS、Windows Service或者WAS(Windows Process Activation Service...无论采用哪种寄宿方式,在为某个服务创建ServiceHost的过程中,WCF框架内部会执行一系列的操作,其中最重要的步骤就是为服务创建服务描述(Service Description)。...除了包含WCF服务的一些基本信息,比如服务的名称、命名空间和CLR类型等,ServiceDescription还包含服务所有终结点和服务行为的描述。...IContractBehavior具有与IEndpointBehavior一样的方法成员,但是契约行为作用于实现了该服务契约的所有服务(服务端行为),基于使用该服务契约进行服务调用的服务代理(客户端行为

    1.2K60

    WCF服务部署到IIS上,然后通过web服务引用方式出现错误的解决办法

    本文转载:http://www.cnblogs.com/shenba/archive/2012/01/06/2313932.html 昨天在用IIS部署一个WCF服务时,碰到了如下错误: 理解了文档内容...如果该服务已在当前解决方案中定义,请尝试生成该解决方案,然后再次添加服务引用。 该错误是在使用svcutil生成client代码时报的错误,服务是部署在IIS7上,部署的过程都是完全教科书式的进行。...具体可参考:http://merill.net/2008/04/wcf-add-service-reference-gotcha-with-windows-server/  WCF服务部署到IIS上,然后通过...web服务引用方式出现错误的解决办法;如果wcf服务没有托管在IIS上,只是在本地浏览方式托管后通过web服务引用方式是没有这样的问题。...问题描述是这样的。 1、通过vs自带的wcf服务DEMO,发布到IIS 上去的时候,通过web服务引用时候出错。 ?

    1.7K10

    WCF技术剖析之二:再谈IIS与ASP.NET管道

    在写作《WCF深入剖析》中,为了剖析基于IIS的WCF服务寄宿(Hosting),再次对相关内容进行了研究,在这里一并与大家分享。...不过W3SVC的基本功能并没有发生变化,只是在功能的实现上作了相应的改进。与IIS 5.x一样,元数据库(Metabase)依然存在于InetInfo.exe进程中。 ?...图3为上述的4个Windows Service在服务控制管理器(SCM)中的呈现。 ?...基本的配置存放在applicationHost.cofig中。 ?...将ASP.NET提供的一些强大的功能应用到原来难以企及的地方,比如将ASP.NET的URL重写功能置于身份验证之前; 采用相同的方式去实现、配置、检测和支持一些服务器特性(Feature),比如Module

    1.7K110

    WCF 4.0中的动态发现服务WS-Discovery

    WCF 3/3.5 中,当我们要调用一个服务时,必须事先知道该服务的地址,然后通过服务代理用双方约定好的契约与远程的服务进行交互。...现在,WCF 4.0中提供了发现服务的支持,当我们再想调用一个服务时,没必要去知道该服务的具体地址,WCF 4.0实现了OASIS的WS-Discovery标准,相关的类定义在System.ServiceModel.Discovery...只需要利用 System.ServiceModel.Discovery 命名空间下的相关类就可以实现两种方式的动态发现服务: Ad hoc Mode:简单理解,就是服务启动时就向网络广播Hello消息,...Managed Mode:简单理解,就是所有服务事先在一个叫 Discovery Proxy 的地方登记,然后所有调用方发送查找请求给 Discovery Proxy 来查找并调用相关服务的模式。...WCF 4.0中要动态发现服务,用 Ad hoc Mode 实现起来还是比较简单的。

    1.1K50

    微软 WCF的几种寄宿方式,寄宿IIS、寄宿winform、寄宿控制台、寄宿Windows服务

    WCF寄宿方式是一种非常灵活的操作,可以在IIS服务、Windows服务、Winform程序、控制台程序中进行寄宿,从而实现WCF服务的运行,为调用者方便、高效提供服务调用。...1、 WCF服务的IIS服务寄宿 我在我前面几篇WCF开发框架的介绍文章中,介绍过了WCF常用的一种寄宿方式,IIS服务寄宿。...这种寄宿方式是最为方便的方式,而且由于服务只需要IIS运行就能自动运行起来,因此广为使用。 创建这种方式IIS寄宿方式的,只需要在解决方案里面,添加WCF服务应用程序,就可以生成这种的服务模块了。...此项目模板应该是基于IIS托管的程序。 前者一般考虑WCF服务设计的时候,服务类的定义为单独的库,可以为其它项目使用。提高代码的复用性。...后者在开发基于IIS托管的WCF服务程序时,比较多见,自学的时候也可以使用这种类型。当然你也可以修改这些代码,比如把WCF服务程序里的类,移到一个单独的类库里。

    1.8K40

    WCF技术剖析之二:再谈IIS与ASP.NET管道

    在写作《WCF深入剖析》中,为了剖析基于IIS的WCF服务寄宿(Hosting),再次对相关内容进行了研究,在这里一并与大家分享。...不过W3SVC的基本功能并没有发生变化,只是在功能的实现上作了相应的改进。与IIS 5.x一样,元数据库(Metabase)依然存在于InetInfo.exe进程中。 ?...图3为上述的4个Windows Service在服务控制管理器(SCM)中的呈现。 ?...基本的配置存放在applicationHost.cofig中。 ?...将ASP.NET提供的一些强大的功能应用到原来难以企及的地方,比如将ASP.NET的URL重写功能置于身份验证之前; 采用相同的方式去实现、配置、检测和支持一些服务器特性(Feature),比如Module

    1.4K41

    git 的基本使用(中)

    git基本操作 新建代码仓库 # 在当前目录新建一个Git代码库 $ git init # 新建一个目录,将其初始化为Git代码库 $ git init [project-name] # 下载一个项目和它的整个代码历史...stage,也就是加入到index中 提交变更:commit提交的是暂存区中的改动,而不是物理文件目前的改动,提交到当前分支,默认是master # 提交暂存区到仓库区 $ git commit -m...合为一步 $ git commit -am 'message' # 使用一次新的commit,替代上一次提交 # 如果代码没有任何新变化,则用来改写上一次commit的提交信息 $ git commit...] [url] # 取回远程仓库的变化,并与本地分支合并 $ git pull [remote] [branch] # 上传本地指定分支到远程仓库 # -u 第一次远程推送的时候加上,以后就可以不使用...,这些信息保存在.git/config文件的[remote "origin"]端中。

    57410
    领券