本地运行.NET 8 Durable Function遇Azurite端口占用,如何修改默认端口?
解决.NET 8 Isolated Durable Function本地Azurite启动问题
一、处理端口10001被占用的问题
报错listen EADDRINUSE: address already in use 127.0.0.1:10001说明该端口被其他进程占用,按以下步骤处理:
- 打开命令提示符,执行命令找出占用端口的进程:
netstat -ano | findstr :10001 - 命令输出最后一列是进程PID,打开任务管理器,找到对应PID的进程并结束。如果是系统或必要进程无法结束,直接更换Azurite端口即可。
二、解决Azurite命令不识别的问题
提示'azurite' is not recognized是因为Azurite未全局安装或路径未加入系统环境变量:
- 先确认Node.js是否安装:执行
node -v,未安装的话去官网下载LTS版本完成安装。 - 全局安装Azurite:执行命令
npm install -g azurite - 如果安装后仍无法识别,检查系统环境变量的
Path是否包含%USERPROFILE%\AppData\Roaming\npm,未包含则手动添加,之后重启命令提示符。
三、修改Azurite端口的具体方法
方法1:命令行手动启动指定端口
安装好Azurite后,用以下命令自定义端口启动:
azurite --blobHost 127.0.0.1 --blobPort 10002 --queueHost 127.0.0.1 --queuePort 10003 --tableHost 127.0.0.1 --tablePort 10004
然后修改项目的local.settings.json,更新存储连接字符串指向新端口:
{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10002/devstoreaccount1;QueueEndpoint=http://127.0.0.1:10003/devstoreaccount1;", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", "DurableTaskStorageProvider": "AzureStorage" } }
之后启动Function项目即可。
方法2:VS Code扩展配置端口
如果使用VS Code,安装Azurite扩展后,打开扩展设置(点击扩展图标→找到Azurite→齿轮图标→扩展设置),分别修改Blob、Queue、Table的端口值,保存后重新启动Azurite。
方法3:Visual Studio调试配置修改
在Visual Studio中,右键项目→属性→调试,在"应用程序参数"里添加:
--azurite.blobPort 10002 --azurite.queuePort 10003
启动项目时会自动用指定端口启动Azurite。
内容的提问来源于stack exchange,提问作者tartar
相关产品推荐
相关产品推荐

