You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在ASP.NET MVC中使用AWS SNS C#发送短信时遇到PhoneNumber属性定义缺失问题

解决AWS SNS PublishRequest中"Phone Number未定义"的错误

这个错误我之前也碰到过,大概率是AWS SDK for .NET的版本问题或者包引用异常导致的,下面给你一步步的解决方案:

1. 检查并更新AWSSDK.SimpleNotificationService包

你当前使用的SDK版本可能太旧,还没有引入PhoneNumber这个属性。按照以下步骤操作:

  • 右键项目打开NuGet包管理器(选择「管理NuGet程序包」)
  • 在浏览页搜索AWSSDK.SimpleNotificationService
  • 如果不是最新稳定版,点击「更新」按钮安装最新版本

更新完成后重新编译项目,这个错误大概率会直接消失。

2. 确认命名空间和类的正确性

确保你引用的是正确的命名空间,避免因类名冲突导致的异常:

using Amazon.SimpleNotificationService;
using Amazon.SimpleNotificationService.Model;

同时确认PublishRequest确实来自Amazon.SimpleNotificationService.Model命名空间,而非其他第三方库的同名类(这种情况虽少见,但多包引用冲突时可能出现)。

3. 备选方案:无法更新SDK时的替代写法

如果你因为项目限制不能升级SDK,可以直接使用Publish方法的重载,跳过构造PublishRequest对象的步骤:

using Amazon.SimpleNotificationService;

string number = "+1234567890";
string message = "Hello at " + DateTime.Now.ToShortTimeString();

var client = new AmazonSimpleNotificationServiceClient(Amazon.RegionEndpoint.USEast1);
// 重载参数顺序:消息内容、主题ARN(短信场景传null)、目标手机号
var response = client.Publish(message, null, number);

额外提示:手机号格式要求

不管用哪种写法,发送短信的手机号必须包含国家/地区代码前缀(比如中国手机号是+8613xxxxxxxxx,美国手机号是+1xxxxxxxxx),否则会出现发送失败的情况。

内容的提问来源于stack exchange,提问作者nawaz uddin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 15:12:44