用 IIS 搭建 mercurial server

本文详细介绍如何在Server2012R2环境下搭建MercurialServer,包括安装配置IIS、Python、MercurialServer等步骤,以及实现匿名访问和URL重定向的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mercurial server

对于代码管理工具,更多的人可能对 Git 更熟悉一些(Git太火了)。其实另外一款分布式代码管理工具也被广泛的使用,它就是 mercurial。当多人协作时最好能够通过创建一个 mercurial server 对用户进行权限认证,同时也方便持续集成。
关于创建 mercurial server 的步骤,mercurial 官方的 wiki 有说明,网上也有很多朋友分享了自己的创建过程。但笔者在创建的过程中还是颇费了一番周折才最终成功,所以也在此分享一下,希望对朋友们能有帮助。

环境及软件安装

笔者使用的操作系统为 Server2012R2 x64 Standard 中文版。在安装其他工具前,先安装 IIS。安装 IIS 时需要注意,一定要把 CGI,ISAPI 这两个选项都勾选上。

安装 Python,使用默认设置安装 python 2.7.x。

安装 mercurial server,请从这里在这里下载 mercurial server 的安装包并安装。安装完成后检查 C:\Python27\Lib\site-packages\mercurial 目录是否被正确安装!

注意,python 和 sercurial server 必须保持相同的架构,不要一个安装 x86 另一个安装 x64。

设置 IIS 服务器支持 python 模块

在 IIS 管理器中选择 IIS server,双击”ISAPI 和 CGI 限制”,添加一项新的扩展:

喜欢使用命令行的同学也可以通过一行命令直接搞定:

C:\Windows\system32\inetsrv\appcmd set config /section:isapiCgiRestriction /+"[path='C:\Python27\python.exe -u %22%s%22',description='Python',allowed='True']"

创建网站

在 IIS 中创建一个新的网站,端口绑定 81(80端口已被默认网站占用)。在网站的根目录中添加 web.config 文件。web.config 文件的内容为:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="Python" path="*.cgi" verb="*" modules="CgiModule" scriptProcessor="C:\Python27\python.exe -u &quot;%s&quot;" resourceType="Unspecified" requireAccess="Script" />
    </handlers>
  </system.webServer>
</configuration>

需要注意文件中 python.exe 的路径,请根据自己机器上的安装目录进行配置。

网站的基本设置已经完成,下面写个简单的测试文件检查一下网站能否正常工作。
在网站的根目录下创建 test.cgi 文件,文件内容如下:

print 'Status: 200 OK'
print 'Content-Type: text/html'
print
print '<html><body><h1>Hello world!</h1></body></html>'

在浏览器中访问 http://localhost:81/test.cgi,如果看不到”Hello world!”,请检查前面的步骤。

配置 mercurial server

在网站的根目录下添加 hgweb.config 文件,内容如下:

[collections]
C:\repos = C:\repos

[web]
push_ssl = false
allow_push = *

在网站的根目录下添加 hgweb.cgi 文件,内容如下:

#!/usr/bin/env python
# Path to repo or hgweb config to serve (see 'hg help hgweb')
config = "xxxxx\hgweb.config"

from mercurial import demandimport; demandimport.enable()
from mercurial.hgweb import hgweb, wsgicgi
application = hgweb(config)
wsgicgi.launch(application)

注意,请按实际情况配置 config 的路径。
这就 OK 了,让我们在 c:\repos 目录下初始化一个库然后访问 http://localhost:81/hgweb.cgi 看看:

配置 URL 重定向

每次都要在 URL 中输入 /hgweb.cgi,一来不方便,二来总感觉怪怪的。能不能输入 http://localhost:81 就你可以正常访问呢?当然可以,只要添加一个重定向的配置就可以了。
首先安装 IIS 的插件:http://www.iis.net/downloads/microsoft/url-rewrite
下载完直接安装,然后在 web.config 文件中添加 rewrite 元素,新的 web.config 文件内容为:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="Python" path="*.cgi" verb="*" modules="CgiModule" scriptProcessor="C:\Python27\python.exe -u &quot;%s&quot;" resourceType="Unspecified" requireAccess="Script" />
    </handlers>
    <rewrite>
      <rules>
        <rule name="rewrite to hgwebdir" patternSyntax="Wildcard">
          <match url="*" />
          <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          </conditions>
          <action type="Rewrite" url="hgweb.cgi/{R:1}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

好了,现在访问下 http://localhost:81 试试,和访问 http://localhost:81/hgweb.cgi 是一样的。

设置匿名访问权限

默认情况下我们已经可以使用匿名权限从服务器克隆库并进行操作了。但当你执行 hg push 命令时会收到一个 HTTP Error 502: Bad Gateway 的错误。原因是匿名用户没有修改服务器上文件的权限。我们需要给匿名身份验证设置一个有修改文件权限的用户。

现在就可以正常的执行 push 操作了。

总结

相比其他工具的一键式安装与配置,mercurial server 的安装和配置稍显复杂。我们只是配置了最简单的匿名访问,并且不支持 ssl,不过这在局域网中基本也够用了。

<think>我们正在回答用户关于如何搭建和配置JetBrains Rider开发环境的问题。用户可能用于C#、.NET或Unity开发。根据引用内容,我们知道Rider是一个跨平台的.NET IDE,支持多种语言和技术栈,包括对Unreal Engine的支持(通过专门的版本)。以下是配置步骤: 1. **下载与安装**: - 访问JetBrains官网下载Rider安装包[^3]。 - 对于Unreal Engine开发,可能需要申请专门的Unreal Rider版本(测试阶段需要邮件申请)[^2]。 - 安装过程按照向导进行,注意选择适合的安装路径。 2. **基本配置**: - **启动设置**:首次启动时,选择主题、键盘映射方案(如VS风格)等。 - **插件安装**:在设置(Settings)中,安装必要的插件,例如: - Unity支持(如果做Unity开发) - Unreal Engine支持(如果做UE开发) - 其他语言支持(如C++, Python等) 3. **配置开发环境**: - **.NET环境**:Rider会自动检测系统中安装的.NET SDK。如果未检测到,需手动下载并安装.NET SDK[^4]。 - **Unity环境**(可选): - 在Rider中打开Unity项目,Rider会自动关联Unity编辑器。 - 设置Unity为默认外部工具:`Preferences → Build, Execution, Deployment → Unity`,确保Unity路径正确。 - **Unreal Engine环境**(可选): - 安装Unreal Rider版本后,打开UE项目,Rider会自动配置UE的代码提示和蓝图识别[^2]。 - 确保UE项目中的`.uproject`文件与Rider关联。 4. **配置IIS Express(用于ASP.NET开发)**: - 下载并安装IIS Express[^4]。 - 在Rider中设置IIS Express路径:`Preferences → Build, Execution, Deployment → IIS Express`,指定安装路径(如`C:\Program Files\IIS Express`或`C:\Program Files (x86)\IIS Express`)[^4]。 5. **版本控制集成**: - Rider内置支持Git、SVN等版本控制系统。 - 在设置中配置Git路径:`Preferences → Version Control → Git`,指定git可执行文件路径。 6. **调试与测试配置**: - 配置调试器:默认情况下,Rider使用内置的调试器,支持.NET Core、.NET Framework等。 - 配置单元测试:支持NUnit、xUnit等测试框架,在设置中启用并配置测试运行器。 7. **优化开发体验**: - **代码补全**:在设置中调整代码补全行为(如自动显示建议的延迟时间)。 - **代码分析**:启用实时代码检查,根据需求调整检查规则。 - **重构工具**:熟悉常用重构快捷键(如重命名、提取方法等)。 8. **项目设置**: - 打开项目后,检查项目SDK是否配置正确(如.NET SDK版本)。 - 对于多项目解决方案,设置启动项目。 ### 示例:Unity项目配置步骤 1. 安装Unity插件(如果未自动安装)。 2. 打开Unity项目,Rider会自动生成解决方案文件(`.sln`)。 3. 在Unity编辑器中设置Rider为默认脚本编辑器:`Edit → Preferences → External Tools → External Script Editor`,选择Rider。 4. 在Rider中,使用`Attach to Unity Editor`按钮连接调试器。 ### 示例:Unreal Engine项目配置步骤 1. 使用Unreal Rider版本打开`.uproject`文件。 2. Rider会自动生成项目文件并建立索引(可能需要几分钟)。 3. 配置构建工具链:确保Rider识别到UE的构建工具(如UnrealBuildTool)。 ### 常见问题解决 - **Rider无法识别Unity/UE项目**:尝试重新生成解决方案文件(在Rider中右键点击解决方案,选择`Reload Project`)。 - **代码补全不工作**:检查Rider的日志(`Help → Show Log in Explorer`),查看是否有错误;尝试重建索引(`File → Invalidate Caches`)。 §§相关问题§§ 1. 如何配置Rider以支持ASP.NET Core Web API开发? 2. Rider中如何调试Unity游戏? 3. 如何优化Rider的性能以处理大型项目? 4. Rider中常用的快捷键有哪些?</think>### JetBrains Rider 开发环境搭建与配置指南 #### 一、环境搭建步骤 1. **下载安装** - 官网下载最新版:[JetBrains Rider](https://www.jetbrains.com/rider/) - 支持跨平台安装(Windows/macOS/Linux) - 安装时勾选.NET相关组件(自动安装.NET SDK)[^3] 2. **环境依赖配置** ```mermaid graph LR A[基础环境] --> B[.NET SDK] A --> C[IIS Express] A --> D[Unity/Unreal Engine] ``` - **IIS Express配置**(ASP.NET开发必需): - 下载安装:[Microsoft IIS Express](https://www.microsoft.com/zh-CN/download/details.aspx?id=34679) - Rider中设置路径:`设置 → 构建、执行、部署 → IIS Express` → 指定安装目录(如 `C:\Program Files\IIS Express`)[^4] 3. **引擎集成** - **Unity项目**: 1. 安装 `JetBrains Rider Plugin` Unity插件 2. Unity设置:`Edit → Preferences → External Tools` → 选择 Rider 作为默认编辑器 - **Unreal Engine项目**: 1. 申请专属版本:[Unreal Rider 测试版申请](https://www.jetbrains.com/lp/unreal/)(需邮件申请)[^2] 2. 打开`.uproject`文件自动识别引擎路径 #### 二、核心配置项 1. **SDK配置** - 路径:`设置 → 构建、执行、部署 → 工具集` - 自动检测已安装的.NET SDK版本 - 手动添加自定义SDK路径(如.NET 6/7/8) 2. **代码智能辅助** ```csharp // Rider 提供智能代码补全 public class Example { public void Method() { Console.WriteLine("智能提示包括:"); // 输入"Conso" → 自动补全为Console } } ``` - 启用实时代码分析:`设置 → 编辑器 → 检查设置` - 配置代码样式规则(如命名约定、缩进等) 3. **调试配置** - 创建调试配置:`运行 → 编辑配置` - 支持多种启动项: - ASP.NET Core 应用 - Unity 播放模式 - 控制台应用 - Docker 容器 4. **版本控制集成** - 内置 Git/SVN/Mercurial 支持 - 差异查看器:`右键文件 → Git → 与仓库比较` - 冲突解决工具:可视化三方合并 #### 三、高级优化技巧 1. **性能调优** - 大型项目优化: - 禁用不必要的插件 - 调整内存设置:`Help → Change Memory Settings` - 启用"仅加载打开的文件"模式 - 索引排除:将`node_modules`/`bin`等目录加入忽略列表 2. **Unity专项配置** - 蓝图识别:确保安装 `Rider for Unreal Engine` 插件 - 调试设置: ```xml <!-- Unity项目中的.rider文件夹 --> <ProjectSettings> <ScriptingRuntimeVersion>.NET 6.x</ScriptingRuntimeVersion> <ApiCompatibilityLevel>.NET Standard 2.1</ApiCompatibilityLevel> </ProjectSettings> ``` 3. **数据库工具** - 连接数据库:`工具 → 数据库 → 新建 → 选择类型` - 支持: - SQL Server - MySQL - PostgreSQL - SQLite #### 四、验证安装 1. 创建测试项目:`文件 → 新建 → 解决方案 → 控制台应用` 2. 运行默认"Hello World"程序 3. 检查关键功能: - 代码补全是否生效 - 调试断点是否命中 - 版本控制图标显示 > **提示**:首次打开大型项目需等待索引完成(状态栏进度条),期间部分功能可能受限[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值